我是 SQL 新手,请耐心等待。
我有 2 张 table :
表1:
Col1 Col2 ColXX ColYY IsDisplay
---------------------------------------------
NULL AA NULL AA 1
BBB CCC QQ QQ 1
DDD EEE QQ QQ 1
1F 2G WW WW 0
1H 1H SS NULL 1
表2:
ID Col1 Col2 Sold Total TotalPax
-------------------------------------------------------
1 BBB CCC 10 10 1
1 DDD EEE 10 10 1
1 1H 1H 5 50 10
1 NULL AA 5 50 10
正如您所看到的,在这两个表中,唯一的公共(public)列是 Col1 和 Col2。鉴于此。
我需要获取表 1 中 ColXX 和 ColYY 的唯一数据,这些数据在表 2 中不存在。对于本例:
ColXX ColYY
----------------
QQ QQ
WW WW
SS NULL
我不知道该怎么做。有人可以帮助我吗?谢谢
最佳答案
使用LEFT JOIN
和IS NULL
SELECT *
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.col1 = t2.col1 AND t1.col2 = t2.col2
WHERE t2.id IS NULL
仔细查看您的数据和示例,我认为您需要这个:
SELECT DISTINCT ColXX, ColYY
FROM table1 t1
LEFT JOIN table2 t2 ON
ISNULL(t1.ColXX, '') = ISNULL(t2.Col1, '')
AND ISNULL(t1.ColYY, '') = ISNULL(t2.Col2, '')
WHERE ISNULL(t2.ID, '')=''
关于sql - 如何返回没有公共(public) ID 的另一个表中尚不存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69850490/