[英]SQL query on link table where results must contain certain value
SQL 服务器 2005。
我有一个与它们关联的产品和属性的链接表。 我正在按照以下方式进行搜索:
select distinct ProductId from productattributelink where
attributeid in (25,5,44,46)
但我想确保每个 productid 也与 10 的 attributeId 相关联。
因此,查询通常是:显示所有具有以下属性 ID(25、5、44、46)但属性 ID 为 10 的产品 ID。
我有一种感觉,这真的很明显,但正在躲避我。
select distinct p.ProductId from product p
inner join productattributelink pa1 on pa1.ProductId = p.ProductId
inner join productattributelink pa2 on pa2.ProductId = p.ProductId
where pa1.attributeid IN(25,5,44,46) and pa2.attributeid = 10
您应该将表连接到自身:
select distinct ProductId from productattributelink p1
JOIN productattributelink p2 ON p1.ProductId = p2.ProductId
where p1.attributeid in (25,5,44,46) AND p2.attributeid = 10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.