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

时间:2011-06-14 17:06:39

标签: sql

SQL Server 2005。

我有一个与之关联的产品和属性的链接表。我正在按照以下方式进行搜索:

select distinct ProductId  from productattributelink where
attributeid in (25,5,44,46)

但我想确保每个productid也与attributeId为10相关联。

因此,在查询中,查询将是:向我显示具有以下属性(25,5,44,46)但属性值为10的所有产品ID。

我有一种感觉,这是显而易见的,但是让我不知所措。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您应该将表格加入到自身:

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