SQL查询存在于每个集合中

时间:2016-09-13 22:40:07

标签: mysql sql

我尝试使用SQL来提取每个集合中存在的值。

表:

+------------+
!ID!Set !Word!
+------------+
!1 !I1  !ABC !
!2 !I1  !DEF !
!3 !I1  !GHI !
!4 !I2  !ABC !
!5 !I2  !LMN !
!6 !I2  !DEF !
!7 !I3  !ABC !
!8 !I3  !GHI !
!9 !I4  !ABC !
!10!I4  !ABC !
+------------+

结果:

+---+
!ABC!
+---+

选择.....给予' ABC'因为它存在于集合I1,I2,I3和I4中,并且没有任何其他集合。

我在MYSQL中发表最快声明之后 - 感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

这是一种方法:

select word
from t
group by word
having count(distinct set) = (select count(distinct set) from t);

注意:仅需要count(distinct word),因为数据中存在重复项。

Here是SQL小提琴。

答案 1 :(得分:0)

您可以使用CONCAT以这种方式尝试:

SELECT word
 FROM t
 GROUP BY word
 HAVING COUNT(DISTINCT CONCAT(set, word)) =
 (SELECT COUNT(DISTINCT set) FROM t)

在此测试:http://sqlfiddle.com/#!9/a80fb/9