2013-03-12 48 views
0

我有一個表與這些字段: phIDProductIDMySQL的多個值

phID是藥房id和ProductID是產品ID。

  • 一個藥房擁有多個產品,
  • 1的產品是將多個藥店

例子:

phID ProductID 
----------------- 
1001 9 
1001 10 
1001 11 
1004 9 
1004 12 
1004 14 
1004 11 

,我想是這樣我就可以得到所有具有phID查詢同樣的產品。 我有這個疑問:

SELECT phID, ProductID 
FROM ph_pd 
WHERE ProductID IN (9,10,11) 

我想要的結果是

1001 9 
1004 9 
1001 11 
1004 11 

或只是

1001 
1004 
+0

http://www.sqlfiddle.com/#!2/021cd/5 我從LolCoder答案 並使它我認爲沒關係 – 2013-03-12 09:59:31

回答

1

如果你想它是在一定的productID秋天得到不同PHID,你必須使用DISTINCT ...

SELECT distinct phID FROM ph_pd WHERE ProductID IN (9,10,11) 
0
SELECT phID 
FROM tableName 
WHERE productID IN (9,10,11) 
GROUP BY phID 
HAVING COUNT(DISTINCT productID) = 2 -- since there are two stores 
1

您可以使用:

SELECT p.phID , p.ProductID FROM ph_pd p 
WHERE (select count(*) from ph_pd where ProductID = p.ProductID) >= 2 
ORDER BY ProductID ;