Join SQL su più colonne nelle stesse tabelle


136

Ho 2 sottoquery, ma ho problemi a unire le colonne dalle stesse tabelle. Provai:

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 finisco semplicemente con la query ON a.userid = b.sourceid, funziona, ma come posso unire anche queste tabelle su un'altra colonna ON a.listid = b.destinationid??

Qualsiasi aiuto apprezzato.


2
grazie per le risposte .. argh non aveva il ";" alla fine della query precedente
user1899415

Risposte:


201

Iscriviti in questo modo:

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

7
Sembra ovvio ripensarci, ma volevo notare che funziona anche un OR, hai appena finito con MOLTI record.
Wastubbs,

68

Vuoi unirti alla condizione 1 AND condizione 2, quindi usa semplicemente la parola chiave AND come sotto

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.