首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择其他表中没有特定值的所有项目

选择其他表中没有特定值的所有项目
EN

Stack Overflow用户
提问于 2013-07-19 22:32:13
回答 2查看 158关注 0票数 0
代码语言:javascript
复制
Table: Car
Columns: CarID, Value

Table: Tyres
Columns: TyreID, CarID, Brand

如何选择所有没有对应TyreBrandCars。在这种情况下,一辆车可能有许多不同的轮胎,每个轮胎都有不同的品牌。

例如。

Car1有4个轮胎,2个A品牌,1个B品牌,1个C品牌。

Car2有3个轮胎,1个品牌A,2个品牌B。

Car3有4个轮胎,3个A品牌,1个C品牌。

我想要找出所有没有一个品牌C轮胎的车辆的CarID,在这种情况下,结果将是Car2。

示例数据:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2013-07-19 22:37:21

Use NOT EXISTS而不是NOT IN,因为IN子句限制为2500行

代码语言:javascript
复制
SELECT CarID 
FROM Car
WHERE NOT EXISTS (
  SELECT 'X'
  FROM Tyres
  WHERE Brand='Brand C'
  and Tyres.carId = Car.carId
)
票数 1
EN

Stack Overflow用户

发布于 2013-07-19 22:34:59

您可以使用NOT IN子句

代码语言:javascript
复制
SELECT CarID 
FROM Car
WHERE CarID NOT IN (
  SELECT CarID 
  FROM Tyres
  WHERE Brand='Brand C'
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17748703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档