Table: Car
Columns: CarID, Value
Table: Tyres
Columns: TyreID, CarID, Brand
如何选择没有特定Cars
的相应Tyre
的所有Brand
。在这种情况下,汽车可能有许多不同的轮胎,每个轮胎都有不同的品牌。
E.g。
Car1有4个轮胎,2个品牌A,1个品牌B,1个品牌C. Car2有3个轮胎,1个品牌A,2个品牌B. Car3有4个轮胎,3个品牌A,1个品牌C。
我想找出所有没有品牌C轮胎的车辆的CarID。在这种情况下,结果将是Car2。
示例数据:
Car
CarID Value
--------------
1 Abc
2 Def
3 Geh
Tyre
TyreID CarID Brand
----------------
1 1 Brand A
2 1 Brand A
3 1 Brand B
4 1 Brand C
5 2 Brand A
6 2 Brand B
7 2 Brand B
8 3 Brand A
9 3 Brand A
10 3 Brand A
11 3 Brand C
Result
ID 2
答案 0 :(得分:1)
使用NOT EXISTS而不是IN,因为IN子句的限制为2500行
SELECT CarID
FROM Car
WHERE NOT EXISTS (
SELECT 'X'
FROM Tyres
WHERE Brand='Brand C'
and Tyres.carId = Car.carId
)
答案 1 :(得分:0)
您可以使用NOT IN
子句
SELECT CarID
FROM Car
WHERE CarID NOT IN (
SELECT CarID
FROM Tyres
WHERE Brand='Brand C'
)