2011-06-14 24 views
0

SQL Server 2005.結果必須包含特定值的鏈接表上的SQL查詢

我有一個關聯產品和屬性的鏈接表。我在做線沿線的一個搜索:

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

但我想確保每個產品ID也與10

因此,一個屬性ID在手寫的查詢是相關的:讓我看看所有產品ID都有以下attributeids(25,5,44,46),但也有10的attributeid。

我有一種感覺,這是真的很明顯,但是逃避我。

回答

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 
+0

不知道這兩個答案是第一,想必這一個。所以謝謝你,工作得很好。 – scaryjones 2011-06-15 09:47:48

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 
+0

感謝您的回答,也工作得很好,但我授予布拉德答案,因爲我認爲他是第一個......雖然有時很難說有關Stackoverflow,請讓我知道你是否在第一! – scaryjones 2011-06-15 09:45:24

+0

對於正確和稍微不同的答案+1。 – Brad 2011-06-15 19:56:46

相關問題