我需要一个SQL代码来比较一个表中不存在的数据,而另一个表保存了一组唯一的预期数据。
我试过使用EXIST和NOT-EXIST运算符。
EXIST运算符将显示第二个表中的所有数据。不存在运算符将不显示任何结果。
代码看起来像

SELECT *
FROM st
WHERE EXISTS
(SELECT data FROM udt WHERE st.data <> udt.data)

这是我的唯一数据表(udt)示例:
+------+
| data |
+------+
|   1  |
|   2  |
|   3  |
|   4  |
+------+

这是我的第二个表(st)示例:
+------+------+
| name | data |
+------+------+
|  AZ  |   1  |
|  AZ  |   3  |
|  BY  |   2  |
|  BY  |   4  |
|  CX  |   1  |
|  CX  |   4  |
|  DW  |   2  |
|  DW  |   3  |
+------+------+

我希望有一个代码,显示在第二张表中不存在的名称和代码。即:
+------+------+
| name | data |
+------+------+
|  AZ  |  2   |
|  AZ  |  4   |
+------+------+

等等
首先,这有可能吗?如果可能,我可以应用什么代码语法?
我知道为什么存在和不存在都不会显示数据,但是有没有办法我可以得到所需的结果?

最佳答案

不确定这是否是最好的方法,现在还很早,咖啡还不多:o)
我已经更改了你的域名,但尽可能地让它们靠近你的。

select q1.[name_],q1.data1
from
(select distinct [name_],data1 from
st,udt) as q1
left join
st as d1
on q1.[name_]=d1.[name_] and
q1.data1=d1.[data_]
where d1.[name_] is null

给你结果
名称数据1
亚利桑那州2
亚利桑那州4
按1
到3
顾客体验2
国泰3
数据仓库1
数据仓库4

关于mysql - 相对于另一个表的列中的预设数据,如何查找列中不存在的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54706110/

10-11 03:12
查看更多