【问题标题】:SQL join on multiple columns in same tablesSQL 连接同一表中的多个列
【发布时间】:2013-05-11 22:47:54
【问题描述】:

我有 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;

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

任何帮助表示赞赏。

【问题讨论】:

  • 感谢您的回答.. 啊,只是没有“;”在前面的查询结束时

标签: sql join


【解决方案1】:

您需要将第二个ON 替换为AND,如下所示:

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

【讨论】:

  • 回想起来似乎很明显,但我想指出 OR 也可以,你最终会得到很多记录。
  • @wastubbs,不是 100%,但我认为加入 OR 的性能很差,建议使用 UNION
【解决方案2】:

您想加入条件 1 AND 条件 2,因此只需使用 AND 关键字,如下所示

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

【讨论】:

    猜你喜欢
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2018-08-30
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多