【发布时间】:2016-06-05 05:35:10
【问题描述】:
我的表格具有以下形式,其中包含组及其成员。
+---------+----+-------+
| group | p | state |
+---------+----+-------+
| group a | p1 | 3 |
| group a | p2 | 1 |
| group a | p3 | 0 |
| group a | p4 | 3 |
| group b | p1 | 1 |
| group b | p2 | NULL |
| group b | p3 | 3 |
| group c | p2 | 1 |
| group c | p3 | NULL |
| group c | p4 | 3 |
+---------+----+-------+
我想获取 p1 所属的所有组及其成员。
我想出了这个
select group, p from `groups` where group in (select DISTINCT group from `groups` where p = "p1")
每个组的规模约为 100,000 名用户,一个用户可以是任意数量的组的一部分。 有没有更有效的方法?
【问题讨论】:
-
如果您重视自己的理智,请不要使用保留字作为表/列标识符。
-
@Strawberry 谢谢,但上表是我创建的一个虚拟表,只是为了在这里提出这个问题。没有注意到精神错乱。
标签: mysql performance select