我正在使用TransactSQL(Microsoft SQL Server 2014),這裏是我的問題: 我正在使用標準的「Northwind」數據庫進行練習,我希望看到一個類別列表,沒有任何產品。IN中的子查詢不起作用
首先我創建了一個新的類別,這不會有任何產品:
insert into Categories (CategoryName) values ('TestCategory')
然後我寫了這個:
SELECT CategoryName
FROM Categories
WHERE CategoryID NOT IN (select CategoryID from Products)
不幸的是它給了什麼。
我是這樣理解:
我想找到的類別,在與其沒有連接的產品,所以我用 WHERE CategoryID NOT IN (select CategoryID from Products)
,因爲我想每一個類別ID從分類表的清單,我從select CategoryID from Products
得到比較 - 這個名單包括HAS產品的每個類別。所以我認爲使用NOT IN應該讓我看到沒有任何產品的類別。
我希望你明白我想描述的是什麼。如果你能提供幫助,那會很好。
你能確認你的'TestCategory'是否真的存在嗎? (即你的插入語句承諾)? – Gerrat
是的,它肯定是,下面的答案解決了這個問題 – Loreno