mysql在2行中有多个值

时间:2013-03-12 09:08:25

标签: mysql

我有一个包含这些字段的表格: phIDProductID

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

3 个答案:

答案 0 :(得分:1)

如果你想获得属于某个productID的不同的phID,你必须使用DISTINCT ......

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

答案 1 :(得分:1)

您可以使用:

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

答案 2 :(得分:0)

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