我是 SQL 新手,所以請耐心等待。
我有2張桌子:
表格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
如您所見,在 2 個表中,唯一的公共列是 Col1 和 Col2。鑒于。
我需要在 table1 中獲取在 table2 中不存在的 ColXX 和 ColYY 的唯一資料。對于這種情況:
ColXX ColYY
----------------
QQ QQ
WW WW
SS NULL
我不知道該怎么做。有人可以幫助我嗎?謝謝
示例資料:http : //sqlfiddle.com/#!18/92640/15
uj5u.com熱心網友回復:
SELECT
*
FROM
table1 AS t1
WHERE
NOT EXISTS (
SELECT *
FROM table2 AS t2
WHERE (t2.Col1 = t1.ColXX OR (t2.Col1 IS NULL AND t1.ColXX IS NULL))
AND (t2.Col2 = t1.ColYY OR (t2.Col2 IS NULL AND t1.ColYY IS NULL))
)
請注意,您的小提琴/示例有Co11而不是Col1?
演示:http : //sqlfiddle.com/#!18/92640/12
uj5u.com熱心網友回復:
使用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, '')=''
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/349846.html
標籤:sql sql-server 查询语句
上一篇:如何避免重復查詢?
