首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择多行的数据和条件

如何选择多行的数据和条件
EN

Stack Overflow用户
提问于 2014-09-10 00:38:32
回答 1查看 27关注 0票数 0

我有一张cars_colors (car_id integer,color_id integer).桌子,上面显示了汽车的颜色。数据示例:

代码语言:javascript
复制
car_id, color_id
151, 1
151, 2
151, 8
190, 1
190, 2
190, 3

这意味着汽车№151有ids 1,2,8的颜色,而№190有ids 1,2,3的颜色。

我需要查询,这将显示car_id的汽车,其中有一些color_id。

我需要所有有1和2 color_id的汽车,我应该返回car_id 151,190

注意:I应该在查询简单(如in (1,2,3....99,100) )中定义color_id

EN

回答 1

Stack Overflow用户

发布于 2014-09-10 00:41:46

您可以使用group byhaving来完成这一任务。

代码语言:javascript
复制
select car_id
from car_colors
where color_id in (1, 2)
group by car_id
having count(distinct color_id) = 2;

编辑:

这种方法的一般形式如下:

代码语言:javascript
复制
select car_id
from car_colors
group by car_id
having sum(case when color_id = 1 then 1 else 0 end) > 0 and
       sum(case when color_id = 2 then 1 else 0 end) > 0 and
       sum(case when color_id = 3 then 1 else 0 end) = 0;

这是一个例子,您需要颜色1和2,但不允许颜色3。您可能会看到如何概括这一广泛的各种不同的可能性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25755628

复制
相关文章

相似问题

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