169 votes

Jointure SQL sur plusieurs colonnes dans les mêmes tables

J'ai deux sous-requêtes, mais j'ai du mal à joindre les colonnes des mêmes tables. J'ai essayé :

SELECT * FROM

(SELECT userid, listid 
FROM user_views_table
WHERE date='2013-05-15' AND view_type='lists') a

JOIN

(SELECT sourceid, destinationid
FROM actions_table
WHERE date='2013-05-15' AND payloadtype='lists_user' AND actiontype='delete') b

ON a.userid = b.sourceid
ON a.listid = b.destinationid;

Si je termine simplement la requête par ON a.userid = b.sourceid cela fonctionne, mais comment puis-je également joindre ces tables sur une autre colonne ? ON a.listid = b.destinationid ? ?

Toute aide est appréciée.

257voto

sysexpand Points 1038

Vous devez remplacer le deuxième ON con AND comme ceci :

ON a.userid = b.sourceid AND a.listid = b.destinationid;

89voto

Paul McLoughlin Points 888

Vous voulez joindre sur la condition 1 ET la condition 2, donc il suffit d'utiliser le mot clé AND comme ci-dessous

ON a.userid = b.sourceid AND a.listid = b.destinationid;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X