同一表中多列的 SQL 联接

我有两个子查询,但是我无法将同一个表中的列连接在一起:

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;

如果我简单地用 ON a.userid = b.sourceid结束查询,那么它就可以工作,但是我如何将这些表连接到另一个也是 ON a.listid = b.destinationid的列上呢?

感谢你的帮助。

396861 次浏览

你需要用 AND代替第二个 ON,像这样:

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

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

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