mysql - 找出表中没有的值

标签 mysql sql db2

假设以下简单表格

Col1
======
one
two

假设以下简单查询

Select count(*) from TABLE_A where Col1 in ('one','two','three','four')

在上面的查询中它将产生以下结果

  2

现在我想找出 IN- 条件中的值是什么,而在 table_A 中不可用。

如何找出表中没有的值?

像下面的结果

three
four

以上查询仅为示例。在我的实时查询中,IN-Condition 有 1000 个值。

工作数据库:DB2

最佳答案

这是实现您期望的解决方法之一。

您可以将这些值移动到表中,而不是对 IN 条件下的值进行硬编码。如果简单地使用 LEFT JOINNULL 检查,您可以获得不匹配的值。

SELECT MR.Col1
FROM MatchingRecords MR -- here MatchingRecords table contains the IN condition values
LEFT JOIN Table_A TA ON TA.Col1 = MR.Col1
WHERE TA.Col1 IS NULL;

Working DEMO

关于mysql - 找出表中没有的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734644/

相关文章:

php - 嵌套排序(toHierarchy)将结果存储在MySQL中

php - 如何列出MySQL数据库中匹配关键字并以年份结尾的所有表?

php - SQL 查询语法错误?

c++ - 仅使用 libdb2 解析 xml 时的段错误

Mysql 将前一行的值减去当前行

mysql - 如何计算 mysql 数据库中结果列的百分比

sql - 在未嵌套的 jsonb 列上优化 GROUP BY + COUNT DISTINCT

java - 使用 java 8 流或 SQL 中最好的方法对类进行分组

java - Hibernate 和 DB2 数据获取

stored-procedures - 如何在 LotusScript 中接收 DB2 存储过程结果