我讀到 MySQL 不支持 EXCEPT,解決方法是使用 LEFT JOIN。
這是我的查詢:
(SELECT ManufacturerID FROM ComputerManufacturers INNER JOIN Computers ON
(Computers.ID = ComputerManufacturers.ComputerID AND Computers.IsLaptop = 1))
EXCEPT
(SELECT ManufacturerID FROM ComputerManufacturers INNER JOIN Computers ON
(Computers.ID = ComputerManufacturers.ComputerID AND Computers.IsLaptop = 0));
基本上:試圖找出銷售個人電腦但不銷售筆記本電腦的制造商。
如何使用 LEFT JOIN 轉換此查詢?我很困惑..
臺式電腦:
---- ------- ---------------- ----- ---------- ---------- ------------------ --------- -------
| ID | Model | ProcessorSpeed | RAM | HDDSpace | IsLaptop | LaptopScreenSize | CDSpeed | Price |
---- ------- ---------------- ----- ---------- ---------- ------------------ --------- -------
| 1 | 2001 | 200 | 50 | 10 | 0 | NULL | 12 | 1500 |
| 2 | 2002 | 2000 | 15 | 10 | 0 | NULL | 12 | 400 |
| 3 | 2003 | 2000 | 50 | 8 | 0 | NULL | 24 | 500 |
| 4 | 2004 | 2000 | 15 | 4 | 1 | 18 | 600 | 1400 |
---- ------- ---------------- ----- ---------- ---------- ------------------ --------- -------
表制造商計算機:
---- ---------------- ------------
| ID | ManufacturerID | ComputerID |
---- ---------------- ------------
| 1 | 2 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 3 |
| 4 | 1 | 4 |
---- ---------------- ------------
因此,由于制造商 ID 號 1 銷售筆記本電腦,結果集應僅包含制造商 ID 號 2。
uj5u.com熱心網友回復:
SELECT ComputerManufacturers.ManufacturerID
FROM ComputerManufacturers
INNER JOIN Computers ON Computers.ID = ComputerManufacturers.ComputerID
GROUP BY 1
HAVING MIN(Computers.IsLaptop) = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515044.html
標籤:mysqlsql加入sql 除外
上一篇:如何在一個資料框中加入pandaspython中的兩列(一列是串列,另一列是整數id列)?
下一篇:從連接sql創建一個額外的行?
