我有兩個數據表。一個是產品,另一個是他們所處類別的分類學表。我無法弄清楚如何進行排除工作並覆蓋分類表中的所有實例。MYSQL:當存在多個時根據類別排除結果產品
表產品
ID | Name
1 | Apples
2 | Oranges
3 | Potatoes
4 | Rosemary
表類別
TaxID | ID | CategoryID
1 | 1 | 10
2 | 2 | 10
3 | 1 | 20
4 | 2 | 20
5 | 3 | 20
6 | 3 | 30
7 | 4 | 40
現在如果我請求該信息:
SELECT p.ID, Name, categoryID FROM Products p JOIN Category c ON p.ID = c.ID WHERE CategoryID != 30 AND CategoryID != 40 GROUP BY p.ID
我得到:
ID | Name | CategoryID
1 | Apples | 10
2 | Oranges | 10
3 | Potatoes | 20
我想要的只是蘋果和橘子,並且讓土豆沒有出現,因爲它們也包含在CategoryID 30中。它排除了迷迭香,但在土豆中包含了它,因爲它在分類表中有另一個類別。