Table: Car
Columns: CarID, Value
Table: Tyres
Columns: TyreID, CarID, Brand如何选择所有没有对应Tyre的Brand的Cars。在这种情况下,一辆车可能有许多不同的轮胎,每个轮胎都有不同的品牌。
例如。
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发布于 2013-07-19 22:37:21
Use NOT EXISTS而不是NOT IN,因为IN子句限制为2500行
SELECT CarID
FROM Car
WHERE NOT EXISTS (
SELECT 'X'
FROM Tyres
WHERE Brand='Brand C'
and Tyres.carId = Car.carId
)发布于 2013-07-19 22:34:59
您可以使用NOT IN子句
SELECT CarID
FROM Car
WHERE CarID NOT IN (
SELECT CarID
FROM Tyres
WHERE Brand='Brand C'
)https://stackoverflow.com/questions/17748703
复制相似问题