【问题标题】:SQL Check one list against AnotherSQL 检查一个列表与另一个列表
【发布时间】:2016-12-24 09:47:08
【问题描述】:

如果有任何关于如何在 SQL 中检查一个列表中的元素是否也出现在另一个列表中的指针,我将不胜感激。

List A = Live Customers in April
List B = Live Customers in May

如何检查列表 A 中的哪些客户也出现在列表 B 中?识别那些丢失的客户

i.e. Customers in A but not in B.

感谢您的帮助。加夫

【问题讨论】:

  • 有很多方法可以解决这个问题,但是如果你想要一个可行的答案,你需要向我们展示一些表格结构。
  • 还请提及您正在使用的 RDBMS,例如 SQLServer、Oracle、mysql、postgre..
  • SQL 标准定义了 INTERSECTEXCEPT Set operators,但并非所有 DBMS 都实现了它们。但如前所述,这取决于您使用的数据库供应商和版本。

标签: sql list comparison


【解决方案1】:

提取结果的不同方法

SELECT customer
FROM ListA a 
WHERE NOT EXISTS (SELECT 1 FROM ListB b WHERE a.customer=b.customer)

SELECT a.customer
FROM ListA a 
  LEFT JOIN ListB b ON a.customer=b.customer
WHERE b.customer is null

SELECT customer
FROM ListA

except

SELECT customer
FROM ListB

SELECT customer
FROM ListA 
WHERE customer NOT IN (SELECT customer FROM ListB )

【讨论】:

    【解决方案2】:

    试试not in 子句

    例子

    select * 
    from mytable 
    where id not in (select id from table2)
    

    这将返回不在另一个表中的结果。快速简单

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2012-10-08
    • 1970-01-01
    • 2021-01-04
    • 2013-11-02
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多