回答
假設表A和表B具有名稱ID的主鍵。
select TableA.*
from TableA
left outer join TableB on TableB.id = TableA.id
where TableB.id is null;
這將查找表b沒有表a的id實例的所有條目。
你有你的術語錯誤。該intersection將是在這兩個表A和B表,你實際上是在尋找什麼是A和B的relative complement爲了得到一個相對補行你想要做一個antijoin:
SELECT * FROM TableA EXCEPT SELECT * FROM TableB.
非常感謝你,這真的是內容豐富的東西!有一個問題,但你的反加入聲明是基於表的PrimaryKeys正確的?我的意思是,他們自動使用PrimaryKeys來做他們的東西,對吧? – 2009-09-16 02:03:42
否 - 比較所有列。它只會篩選表A中存在的表B中也存在的完整行。 – tvanfosson 2009-09-16 02:05:25
SELECT ColumnA, ColumnB
FROM TableA
EXCEPT
SELECT ColumnA, ColumnB
FROM TableB
您可以使用EXISTS子句
SELECT * FROM TableA
WHERE NOT Exists
(
SELECT Column1 FROM TableB
WHERE TableA.Column1 = Table2.Column1
AND TableA.Column2 = Table2.Column2
....
)
更換....同列的兩個表中的其餘部分。
這是更好的答案。在SQL Server中,NOT IN/NOT EXISTS優於LEFT JOIN,因爲它的優化器無法辨別LEFT JOIN/IS NULL中的ANTI JOIN。它將始終返回所有NULLS並將其過濾掉。 – 2009-09-16 02:05:00
或NOT IN
SELECT *
FROM TableA
WHERE TableA.Id NOT IN (SELECT TableB.Id FROM TableB)
- 1. 在select語句中遇到NVL問題
- 2. 將SQL Select語句組合到單個Select語句中? (簡化。)
- 3. 結合三個SELECT語句時遇到問題,UNION不工作
- 4. SQL SELECT語句的問題
- 5. 這個簡單的SQL語句有什麼問題?
- 6. 這個簡單的SQL語句有什麼問題?
- 7. Rails sql問題與簡單的語句
- 8. 使用if/elif語句遇到問題
- 9. 這個SELECT語句有什麼問題?
- 10. SSRS在IIF語句中使用DateDiff時遇到的問題
- 11. 我在使用JOptionPane的if/else語句時遇到問題?
- 12. SQL 2008 - 我是否在簡單的select語句中使用NOLOCK?
- 13. SELECT語句問題
- 14. 在SUMIFS函數語句中使用Vlookup時遇到問題
- 15. 在Java中使用switch語句時遇到問題
- 16. 嘗試在數組中使用IF語句時遇到問題
- 17. 在使用小數的簡單C++程序時遇到問題。
- 18. 簡單的SELECT語句
- 19. 遇到問題select()
- 20. Select語句問題?
- 21. 遇到了IF ELSE語句的問題
- 22. 問題select()語句
- 23. 簡化SQL SELECT語句
- 24. 簡化SQL SELECT語句?
- 25. 這個T-SQL select語句有什麼問題?
- 26. Derby,Java:遇到「CREATE_TYPE」語句的問題
- 27. 用JFileChooser遇到問題if/else語句
- 28. 在if語句中遇到問題
- 29. if-then語句邏輯遇到問題
- 30. select語句的問題mysql
我得到使用表A錯誤。*,我的SQL Server Express 2008年。我該怎麼辦? – 2009-09-16 01:54:27
你可以枚舉你想要的列。例如選擇TableA.id,TableA.otherColumn等 – joeslice 2009-09-16 01:55:28
固定它使用此: SELECT * FROM ProductoA LEFT OUTER JOIN ProductoB 上ProductoB.Descripcion = ProductoA.Descripcion 其中ProductoB.Descripcion爲空; – 2009-09-16 01:56:50