MySQL Query用于搜索2列共享同一列的所有列

时间:2015-03-24 08:17:03

标签: mysql sql querying

我不完全确定如何说出这一点,而且我一般都是SQL的新手,但基本上在我的group_memberships表中我有user_id列,{{1 }和group_id。我想看看两个用户(user1和user2)是否共享同一个组(即他们是同一组的一部分)如果user1的permission_level为{{1}并且user2的permission_level1(即user1是user2' s)。

该查询可能非常激烈,但我不确定。我甚至在谷歌搜索如何做到这一点很困难。

1 个答案:

答案 0 :(得分:2)

你可以自我加入:

SELECT
 *
FROM group_memberships gm1 -- for the "first" user
JOIN group_memberships gm2 ON TRUE -- for the "second" user
 AND gm1.group_id = gm2.group_id
 AND gm1.user_id != gm2.user_id -- prevent joining to the same tuples
WHERE TRUE
AND gm1.permission_level = 0
AND gm2.permission_level = 1
-- additional conditions can go here, eg:
-- AND gm1.userid = X
-- AND gm2.userid = Y