SQL,在关系表中用fk2条件查询fk1

问题描述 投票:0回答:2

标题无法很好地解释我的问题,请阅读:

我有一个关系表连接ProductProduct_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)?

sql select relation
2个回答
1
投票

按产品分组,然后仅选择具有这两种类型的组

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的整个组


0
投票

你的意思是,你想选择pdt_type_id为7或23且pdt_id为5的记录?如果我是对的,试试这个。

SELECT * FROM pdt_type_rel where pdt_type_id IN (7,23) AND pdt_id =5

© www.soinside.com 2019 - 2024. All rights reserved.