Bonsoir,
j'ai 4 table CMP,CO,PO,DT avec
par exemple
CMP : idcmp , name
CO : idc ,idcmp
PO : idp ,idc
DT: idt,idp
je voudrai avoir name,idc,idp,idt sans utiliser inner join
quelqu'un a une idée
Merci
Bonsoir,
j'ai 4 table CMP,CO,PO,DT avec
par exemple
CMP : idcmp , name
CO : idc ,idcmp
PO : idp ,idc
DT: idt,idp
je voudrai avoir name,idc,idp,idt sans utiliser inner join
quelqu'un a une idée
Merci
Bonjour,
Vous confondez :
- le produit cartésien, qui associe tous les tuples d'une table aux tuples d'une autre,
- l'équi-jointure, introduite par INNER JOIN en T-SQL, et qui associe les tuples d'une table à une autre suivant un prédicat de jointure, c'est à dire suivant des valeurs de clé stockées dans l'une et l'autre des tables.
Quel en est l'intérêt ?je voudrai avoir name,idc,idp,idt sans utilisé inner join
@++![]()
le probleme ce que je veux faire une seul requette regroupons plusieurs tables
avec/sans relation par exemple:
dans where
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 cmp-co-po-dt (avec relation) (cmp.id = co.id and co.id = po.id ....) or (cmp.id = pq.id .........) cmp-pq-po-cl-cr(avec relation)
Vos tables me semblent être liées par des relations.
Je peux me tromper, mais ne pas se servir de ces relations est une erreur.
Jetez un oeil aux jointures ici et ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT CMP.name, CO.idc, PO.idp, DT.idt FROM dbo.CMP LEFT JOIN dbo.CO ON CMP.idcmp = CO.idcmp LEFT JOIN dbo.PO ON CO.idc = PO.idc LEFT JOIN dbo.DT ON DT.idp = PO.idp
@++![]()
Partager