选择有多种颜色的产品?

时间:2014-10-09 12:40:42

标签: sql select join normalization

我有两种餐桌产品和产品颜色

例如

产品

id   name
1    T Shirt 
2    Jeans
3    Coat

产品颜色

id   color     p_id
1    Green     1
2    red       1
3    yellow    1

T恤有3种颜色绿色,红色,黄色。

现在我想选择绿色,红色,黄色的产品名称

注意

在查询中返回所有具有红色,绿色,黄色的产品。

1 个答案:

答案 0 :(得分:2)

要获得具有所有三种颜色的产品,您可以

select p.name
from products p
join productColors pc on pc.p_id = p.id
where pc.color in ('green','red','yellow')
group by p.id, p.name
having count(distinct pc.id) = 3