标题无法很好地解释我的问题,请阅读:
我有一个关系表连接Product
和Product_Type
,现在我想选择其type_id属于7和23的产品。这意味着该产品属于类型7和类型23.但我找不到一个简单的SQL来选择product_id。
SELECT * FROM pdt_type_rel
where pdt_type_id=7 or pdt_type_id=23
正如查询结果所示,只有product(id = 5)才是我想要的。但是我怎样才能只选择产品(id = 5)?
按产品分组,然后仅选择具有这两种类型的组
select pdt_id
from pdt_type_rel
where pdt_type_id in (7,23)
group by pdt_id
having count(distinct pdt_type_id) = 2
由于单个记录不能同时具有这两个值,因此您需要查看所有pdt_id
的整个组
你的意思是,你想选择pdt_type_id为7或23且pdt_id为5的记录?如果我是对的,试试这个。
SELECT * FROM pdt_type_rel
where pdt_type_id IN (7,23) AND pdt_id =5