我的表的形式如下,其中包含組及其成員。MySQL:獲取用戶組及其所有成員
+---------+----+-------+
| 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")
規模爲每組約10萬用戶,用戶可以任意數量的組的一部分。 有沒有更有效的方法呢?
如果你珍惜你的理智,請勿將保留字用作表格/列標識符。 – Strawberry
@Strawberry謝謝,但上表是我創建的虛擬表,僅僅是爲了在此提出這個問題。沒有注意到瘋狂。 –