繁体   English   中英

SQL 查询链接表,其中结果必须包含特定值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM