我只想從表1中獲取與表2相關的常見值,如下圖所示。
如何,如下面圖片中所示的結果顯示我少見值
這是我使用的查詢,但它如我所料如何從表1和表2中獲取不常見的值
select * from t1.* from Table1 t1 inner join Table2 t2 on t1.Name <> t2.Name
不顯示結果
我只想從表1中獲取與表2相關的常見值,如下圖所示。
如何,如下面圖片中所示的結果顯示我少見值
這是我使用的查詢,但它如我所料如何從表1和表2中獲取不常見的值
select * from t1.* from Table1 t1 inner join Table2 t2 on t1.Name <> t2.Name
不顯示結果
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null
OR TableB.id IS null
在的情況下,外連接少見行不存在在其他各行中產生一個NULL字段。我們基本上這樣選擇它。
感謝它的工作 – user6503334
使用Except
和Union All
。不知道爲什麼"SQL 2K12"
是結果,因爲它存在於兩個表
select col from table1
except
select col from table2
Union all
select col from table2
except
select col from table1
i updated image – user6503334
我收到錯誤消息:消息205,級別16,狀態1,行1 所有使用UNION,INTERSECT或EXCEPT運算符組合的查詢在其目標列表中必須具有相同數量的表達式。 – user6503334
@ user6503334 - 您如何在原始查詢中進行替換。 select中的列數應該相同也應該鍵入兼容 –
Select col
From (
Select col from Table1
Union All
Select col from Table2
) A
Group By col
Having count(*)=1
這是根據你的例子另一種選擇
SELECT * -- or SELECT COALESCE(t1.Name,t2.Name) As Name
FROM
Table1 t1
FULL OUTER JOIN Table2 t2 ON t1.Name = t2.Name
WHERE
t1.Name IS NULL OR t2.Name IS NULL;
如果有兩個表中只有一列(或兩個表具有相同的列),如果你不希望這些列重複
SELECT *
FROM
Table1
UNION
SELECT *
FROM
Table2
EXCEPT
(
SELECT *
FROM
Table1
INTERSECT
SELECT *
FROM
Table2
)
請解釋邏輯。爲什麼「SQL 2K12」的結果? –
http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –