我需要一个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/