我正在尝试编写基于单个表检查组成员身份的语法。我有多次在表中的用户(意思是多行),所以我可能有这样的数据:
user region field1
---- ------ ------
282 10 38
282 10 128
464 3 57
等
我需要的语法是“组A =区域10和FIELD1列中的任何一个数字--38,79,126。然后组B =区域10和FIELD1列中的任何这些数字 - 80,128”
现在,正如您从我的示例中看到的那样,用户282将在A组和B组中被考虑。最终,我希望找出两个组中的谁。我做了一个GROUP_CONCAT来告诉我他们在同一组中,但我如何计算它们甚至过滤“组”?
答案 0 :(得分:1)
使用自我加入:
SELECT DISTINCT t1.user
FROM MyTable t1
JOIN MyTable t2 USING (user)
WHERE t1.region = 10 AND t1.field1 IN (38, 79, 126)
AND t2.region = 10 AND t2.field1 IN (80, 126)