【问题标题】:SQL: Returning unassigned rows [duplicate]SQL:返回未分配的行[重复]
【发布时间】:2014-12-12 00:58:01
【问题描述】:
assignments:
id | prospectid
1  | 1
2  | 2
3  | 5

prospects:
id | name
1  | purple
2  | red
3  | blue
4  | orange
5  | green

我想返回一个潜在客户列表,其中潜在客户 ID 不存在于作业中的潜在客户 ID 列下。简而言之,我想返回未分配的潜在客户。

所以从上面的例子来看,它应该返回:

prospects:
3 | blue
4 | orange

我失败的 SQL:

SELECT * FROM prospects
WHERE prospects.id != `assignments`.prospectid

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以使用 NOT EXISTS 子句

    select * 
    from prospects p
    where not exists (select null from 
                      assignments a
                      where a.prospectid = p.id)
    

    【讨论】:

      【解决方案2】:

      使用LEFT JOIN

      SELECT P.id, P.name
      FROM Prospects P
      LEFT JOIN assignments A
      on P.id = A.prospectid
      WHERE A.prospectid is NULL
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-05
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 2014-11-13
        • 2014-01-20
        • 2019-09-03
        相关资源
        最近更新 更多