0

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

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

4

1 回答 1

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)
于 2013-01-31T20:44:36.743 回答