SQL连接在同一个表中的多个列上

use*_*415 115 sql join

我有2个子查询,但是我无法从同一个表中将列连接在一起.我试过了:

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;
Run Code Online (Sandbox Code Playgroud)

如果我只是用ON a.userid = b.sourceid它结束查询工作,但我怎么也可以在另一列上加入这些表ON a.listid = b.destinationid

任何帮助赞赏.

Zor*_*vat 174

像这样加入:

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Run Code Online (Sandbox Code Playgroud)

  • 回顾它似乎很明显,但是我想指出一个OR也可以,您最终得到了很多记录。 (3认同)

Pau*_*lin 59

您希望在条件1和条件2上加入,因此只需使用AND关键字,如下所示

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Run Code Online (Sandbox Code Playgroud)