Junção SQL em várias colunas nas mesmas tabelas

136

Eu tenho duas subconsultas, mas estou tendo problemas para unir colunas das mesmas tabelas. Eu tentei:

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;

Se eu simplesmente encerrar a consulta com ON a.userid = b.sourceidela funciona, mas como também posso associar essas tabelas em outra coluna ON a.listid = b.destinationid?

Qualquer ajuda apreciada.

user1899415
fonte
2
obrigado pelas respostas .. argh simplesmente não tinha o ";" no final da consulta anterior
user1899415

Respostas:

201

Junte-se assim:

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Zoran Horvat
fonte
7
Parece óbvio olhando para trás, mas eu queria observar que um OR também funciona, você acaba com MUITOS registros.
wastubbs
68

Você deseja ingressar na condição 1 AND 2, portanto, basta usar a palavra-chave AND como abaixo

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Paul McLoughlin
fonte