MySQL将组合在一个表中

时间:2013-01-31 20:27:30

标签: mysql

我正在尝试编写基于单个表检查组成员身份的语法。我有多次在表中的用户(意思是多行),所以我可能有这样的数据:

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来告诉我他们在同一组中,但我如何计算它们甚至过滤“组”?

1 个答案:

答案 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)