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.


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;

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;
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.