Unión SQL en varias columnas en las mismas tablas

136

Tengo 2 subconsultas, pero tengo problemas para unir columnas de las mismas tablas. Lo intenté:

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 simplemente termino la consulta ON a.userid = b.sourceid, funciona, pero ¿cómo puedo unirme a estas tablas en otra columna también ON a.listid = b.destinationid?

Cualquier ayuda apreciada.

usuario1899415
fuente
2
gracias por las respuestas ... argh simplemente no tenía el ";" al final de la consulta anterior
user1899415

Respuestas:

201

Únete así:

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Zoran Horvat
fuente
77
Parece obvio mirarlo hacia atrás, pero quería señalar que un OR también funciona, solo terminas con MUCHOS registros.
wastubbs
68

Desea unirse con la condición 1 Y la condición 2, así que simplemente use la palabra clave AND como se muestra a continuación

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