SQL Server 2005。
我有一个与之关联的产品和属性的链接表。我正在按照以下方式进行搜索:
select distinct ProductId from productattributelink where
attributeid in (25,5,44,46)
但我想确保每个productid也与attributeId为10相关联。
因此,在查询中,查询将是:向我显示具有以下属性(25,5,44,46)但属性值为10的所有产品ID。
我有一种感觉,这是显而易见的,但是让我不知所措。
答案 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