【问题标题】:SQL to find elements NOT IN a tableSQL查找不在表中的元素
【发布时间】:2014-10-29 17:23:00
【问题描述】:

我想在客户表中找到不是的集合中的元素。这是一个示例表:

customer_id | customer_name
1             joe smith
2             john doe
3             jane doe

这是一个示例集:

('joe smith', 'pepi fogelhut', 'jane doe', 'smiley whiplash')

查询该数据的输出应该是:

pepi fogelhut
smiley whiplash

我很确定我需要使用左连接。像这样?

select customer_name as n1 from customers as c1 left outer join customers as c2 on n1=c2.customer_name

【问题讨论】:

  • 数据集从何而来?
  • 以上数据完全是假的。真实数据来自数据录入员工。为什么?
  • 我认为他在问,因为如果您的数据集存储在另一个表的列中,这会容易得多。
  • 因为您无法以这种方式将数组与存储的列表进行比较。要么存储数组,然后在 MySQL 中运行比较,要么将列表转换为数组并在应用程序级代码中运行比较。
  • 好的。所以假设我把第二组数据放到另一个表中,该死的为什么我不能按回车键

标签: mysql sql


【解决方案1】:

如果您将数据放入临时表中,您可以简单地从表中选择所有未出现在原始表中的值。比如:

SELECT name FROM temporaryTable WHERE name NOT IN (SELECT name FROM customerTable);

这将返回临时表中但不在原始客户表中的任何客户名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2022-01-05
    • 2012-04-11
    • 2011-04-05
    • 2018-12-11
    • 1970-01-01
    • 2011-01-12
    • 2012-07-06
    相关资源
    最近更新 更多