Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2876 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Joint ? [RESOLU] Mais....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Joint ? [RESOLU] Mais....

n°785212
gooopil
pfiew
Posté le 02-07-2004 à 18:33:34  profilanswer
 

Salut,
 
Jusqu'à présent, dans mes pages php je me limitais à ce genre de chose :
 
SELECT machin,cle1 FROM table1
puis pour chaque réponse
SELECT truc FROM table2 WHERE cle=cle1
 
C'est assez moche comme fonctionnement nan ?  
 
Mes connaissances en (my)sql se limitant à très peu de choses, je me suis intéressé à la doc, et j'ai déduis qu'il me fallait utiliser un JOINT. Mais bon, j'en s uis pas sur, et surtout, je comprend absolument rien à la doc  :??:  
 
Une ame charitable pour me guider ?
 
Merci  :hello:
 
 
EDIT : Bon grace à gizmo j'ai réussi à faire ca qui marche parfaitement :
SELECT utilisateurs.num_U, nom, raison, banuser.date, duree  FROM banuser INNER JOIN utilisateurs ON( utilisateurs.num_U=banuser.num_U)
 
Mon deuxième problème c'est que dans la table banuser, j'ai un autre champ (num_Ban) qui correspond à un autre utilisateur (celui qui a banni le vilain qui se trouve dans banuser  : utilisateurs.num_U = banuser.num_Ban). Je fais comment la pour faire le lien avec l'enregistrement dans utilisateurs ?  
 
Merci de votre patience :)


Message édité par gooopil le 03-07-2004 à 21:37:00
mood
Publicité
Posté le 02-07-2004 à 18:33:34  profilanswer
 

n°785216
gizmo
Posté le 02-07-2004 à 18:49:18  profilanswer
 

La version moche:
 
SELECT machin, truc
FROM table1, table2
WHERE table1.cel1 = table2.cle
 
La version jolie:
 
SELECT machin, truc
FROM table1 INNER JOIN table2 ON (table1.cle1 = table2.cle)

n°785220
gooopil
pfiew
Posté le 02-07-2004 à 18:56:24  profilanswer
 

Merci :)

n°785225
Mosca
Posté le 02-07-2004 à 19:00:48  profilanswer
 

Concrètement, ça change quoi ?

n°785229
gizmo
Posté le 02-07-2004 à 19:03:54  profilanswer
 

Entre quoi et quoi?

n°785237
gooopil
pfiew
Posté le 02-07-2004 à 19:21:04  profilanswer
 

Je pense qu'il veut dire entre ta bonne et ta mauvaise solution :). Comparée à la mienne, la différence se voit de suite

n°785243
Mosca
Posté le 02-07-2004 à 19:37:36  profilanswer
 

(oui, la diff entre le join de base et le inner join)
 
Je suppose que le résultat est le même ...
Plus rapide ?


Message édité par Mosca le 02-07-2004 à 19:38:12
n°785252
gizmo
Posté le 02-07-2004 à 19:57:25  profilanswer
 

le inner join c'est la syntaxe stricte, le join tout court est une syntaxe laxiste.

n°785315
Mosca
Posté le 02-07-2004 à 21:15:04  profilanswer
 

Laxiste, laxiste ... Tout de suite les insultes ... ;)
Quand on doit "vite" faire un query, on fait au plus pressé ... En plus quand t'as des gros query, assez longs, sur 6 ou 7 tables, c'est plus clair à mon sens ...

n°785319
gizmo
Posté le 02-07-2004 à 21:24:12  profilanswer
 

Question de portabilité et de clarté. Quand j'ai "inner" marqué, je sais d'office que c'est une jointure interne (et non externe) et je sais qu'elle sera plus facilement (rapidement) transposable dans un aute DBMS.

mood
Publicité
Posté le 02-07-2004 à 21:24:12  profilanswer
 

n°785336
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-07-2004 à 21:36:57  profilanswer
 

Pour le INNER JOIN, je suis pas super convaincu que ce soit mieu.
 
Niveau portabilité, je pense même que c'est plus restrictif. Je vérifie lundi, mais il me semble que l'instance Oracle sur laquelle je bosse ne supporte pas cette syntaxe (en tout cas, je suis quasi-certain que le outer ne passe pas)
 
Sinon, je suis de l'avis de Mosca, c'est plus clair d'avoir une clause FROM "propre", et les liens stipulés dans les clauses de filtre (puisque c'est un filtre de toute façon)

n°785343
gizmo
Posté le 02-07-2004 à 21:44:40  profilanswer
 

Arjuna a écrit :

Pour le INNER JOIN, je suis pas super convaincu que ce soit mieu.
 
Niveau portabilité, je pense même que c'est plus restrictif. Je vérifie lundi, mais il me semble que l'instance Oracle sur laquelle je bosse ne supporte pas cette syntaxe (en tout cas, je suis quasi-certain que le outer ne passe pas)
 
Sinon, je suis de l'avis de Mosca, c'est plus clair d'avoir une clause FROM "propre", et les liens stipulés dans les clauses de filtre (puisque c'est un filtre de toute façon)


 
Euh, ici son exemple est trivial, mais sinon, je préfère nettement laisser ces informations purement relatives aux jointures dans la clause from et ne mettre dans la clause where que les informations réellement basée sur les demandes de l'utilisateur (son véritable filtre).
 
Sinon, il est possible que ton ancienne version d'oracle ne le supporte pas (il me semble qu'ils ne l'ont introduit qu'avec 8i) et je sais qu'ils ont toujours du mal avec le outer (ils utilisent le (+)). Mais bon, Oracle est vraiment l'un des SGDB qui respecte le moins les standards que je connaisse, à part avec eux-même (et encore!) ils sont quasiment toujours incompatible au niveau des formulations.

n°785346
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-07-2004 à 21:48:28  profilanswer
 

gizmo a écrit :

Euh, ici son exemple est trivial, mais sinon, je préfère nettement laisser ces informations purement relatives aux jointures dans la clause from et ne mettre dans la clause where que les informations réellement basée sur les demandes de l'utilisateur (son véritable filtre).
 
Sinon, il est possible que ton ancienne version d'oracle ne le supporte pas (il me semble qu'ils ne l'ont introduit qu'avec 8i) et je sais qu'ils ont toujours du mal avec le outer (ils utilisent le (+)). Mais bon, Oracle est vraiment l'un des SGDB qui respecte le moins les standards que je connaisse, à part avec eux-même (et encore!) ils sont quasiment toujours incompatible au niveau des formulations.


OK, donc s'ils l'ont introduite avec la 8i, vu que ça doit être sur la 8.0.5 que j'ai eu le problème, ceci explique cela ;)

n°785347
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-07-2004 à 21:49:29  profilanswer
 

Ce qui est le plus marrant dans l'histoire, c'est qu'Oracle a été pendant un long moment le "owner" de la norme SQL, et on activement participé à son évolution... Alors qu'ils la respectent très mal :lol:

n°785351
gizmo
Posté le 02-07-2004 à 21:53:09  profilanswer
 

MS a également été un des participant actifs à la rédaction des normes W3C, Sony a inventé le CD audio et essaye de faire des protections dessus, ...
 
On va finir par croire le vieille adage comme quoi les cordonniers sont les plus mal chaussés :/

n°785359
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-07-2004 à 22:15:28  profilanswer
 

C'est clair :lol:
 
PS: c'est pas Philips qui a inventé le CD ? Il me semblait...
 
En tout cas, le coup des 74 minutes et quelques, c'est à cause du PDg de la boîte qui a inventé le CD. Les specs c'était qu'on puisse stocker un certain concertau de Beetoven sur le nouveau support.
 
ce concertaux faisant 74 et quelques minutes, le CD a fait rigoureusement la même taille, pas une seconde de plus (quels fourbes ces ingénieurs :D)


Message édité par Arjuna le 02-07-2004 à 22:17:07
n°785418
gizmo
Posté le 02-07-2004 à 23:54:14  profilanswer
 

Pour le CD, c'est Sony, et philipps a racheté le brevet

n°785520
HappyHarry
Posté le 03-07-2004 à 01:04:43  profilanswer
 

les joints c'est illégal :o

n°785522
gizmo
Posté le 03-07-2004 à 01:06:08  profilanswer
 

HappyHarry a écrit :

les joints c'est illégal :o


ca dépend où :o

n°785525
HappyHarry
Posté le 03-07-2004 à 01:06:52  profilanswer
 

hardware.fr :o
 
 
:whistle:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Joint ? [RESOLU] Mais....

 

Sujets relatifs
[PHP] Petit problème avec les images ... [Résolu]probleme avec les pseudo frames [resolu !!]
liste [RESOLU][resolu]entetes de table fixe
un menu qui s'affiche n'importe comment sous IE[resolu](overflow dans un div [résolu]) > Code correct ?
SELECT et NULL discriminatoire [résolu]/ Cumuler L/R join [pas résolu][RESOLU] Obtenir le resultat d'une requete et le nombre de reponse
[RESOLU]passage par l'url en asp[VBA] Insérer numéro de page dans tableau [RESOLU]
Plus de sujets relatifs à : Joint ? [RESOLU] Mais....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR