SQL join on multiple columns in same tables

SqlJoin

Sql Problem Overview


I have 2 subqueries, but I'm having trouble joining columns together from the same tables. I tried:

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;

If I simply end the query with ON a.userid = b.sourceid it works, but how can I also join these tables on another column also ON a.listid = b.destinationid ??

Any help appreciated.

Sql Solutions


Solution 1 - Sql

You need to replace the second ON with AND, like this:

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

Solution 2 - Sql

You want to join on condition 1 AND condition 2, so simply use the AND keyword as below

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser1899415View Question on Stackoverflow
Solution 1 - SqlZoran HorvatView Answer on Stackoverflow
Solution 2 - SqlPaul McLoughlinView Answer on Stackoverflow