我尝试使用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中发表最快声明之后 - 感谢您的帮助。
答案 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)