2016-11-11 32 views
2

我有一個表。選擇出現在另一個查詢的所有結果中的條目

此表有2個字段,產品ID和商店ID。相同的產品ID可以與許多不同的商店ID一起存在。

我需要找到所有商店中常見的產品(如果有的話)。

我有困難構建正確的查詢,任何建議?

+0

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-query – Strawberry

回答

1

您可以檢查不同的商店與IDS產品編號計數。如果不同的Store ID計數等於所有將會是您想要的產品ID的商店。

SELECT productID, count(DISTINCT StoreID) as stroes FROM [Table name] GROUP BY productID 
HAVING COUNT(DISTINCT StoreID) = (SELECT COUNT(DISTINCT StoreID) FROM [Table name]); 
+1

這樣做的工作。謝謝。 –

+0

不客氣。 –

0

我敢肯定,你會得到很多更好的答案,但它聽起來像你想的不同條款的相反,不知道這是否會工作,雖然:

選擇NOT DISTINCT [PRODUCT_ID] FROM TABLENAMEHERE

+0

這是行不通的,只是意識到。如何這樣的事情: –

+0

SELECT ProductIDFROM Customers WHERE EmailAddress IN (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*)> 1) –

+0

道歉,不用於輸入post!,請點擊此鏈接:http:// stackoverflow .com/questions/13146304/how-to-select-every-row-where-column-value-is-distinct-distinct,這是我從下面得到完整答案的地方: SELECT ProductID FROM Tablename WHERE ProductID IN (SELECT ProductID FROM Tablename GROUP BY ProductID HAVING COUNT(*)> 1) –

0

你可以起訴計數(不同的productID)

select productID 
    from my_table 
    group by productID 
    having count(distinct productID) = ( 
       select count(distinct store) 
       from my_table) 
相關問題