Łączenie SQL na wielu kolumnach w tych samych tabelach


141

Mam 2 podzapytania, ale mam problemy z łączeniem razem kolumn z tych samych tabel. Próbowałem:

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;

Jeśli po prostu zakończę kwerendę, ON a.userid = b.sourceidto działa, ale jak mogę również dołączyć te tabele do innej kolumny ON a.listid = b.destinationid?

Każda pomoc doceniona.


2
dzięki za odpowiedzi ... argh po prostu nie mam ";" na końcu zapytania wcześniej
user1899415

Odpowiedzi:


211

Dołącz w ten sposób:

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

8
Patrząc wstecz, wydaje się to oczywiste, ale chciałem zauważyć, że OR działa również, po prostu otrzymujesz DUŻO płyt.
wastubbs

74

Chcesz dołączyć pod warunkiem 1 ORAZ 2, więc po prostu użyj słowa kluczowego AND, jak poniżej

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.