选择出现在另一个查询的所有结果中的条目

时间:2016-11-11 15:38:58

标签: mysql sql

我有一张桌子。

此表包含2个字段,产品ID和商店ID。相同的产品ID可以存在许多不同的商店ID。

我需要找到所有商店中常见的产品(如果有的话)。

我难以构建正确的查询,有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您可以使用产品ID检查不同的商店ID数量。如果不同的商店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)

我相信你会得到更多更好的答案,但听起来你想要反对的是不同的条款,不知道这是否会起作用:

SELECT NOT DISTINCT [Product_ID] 来自TABLENAMEHERE

答案 2 :(得分:0)

你可以提起诉讼(不同的产品ID)

  select productID
  from my_table
  group by productID
  having count(distinct productID) = (    
                select count(distinct store)
                from my_table )