0

只有当 id_user_a 和 id_user_b 对于给定的用户 ID 相互匹配时,我才需要选择用户。

users                  // SQL Statements: http://pastebin.com/w34qQv0g
id username
1  user1
2  user2
3  user3
4  user4

matches
id_user_a id_user_b
1         2
2         1
1         4
4         1

正如您在上面看到的,对于给定的用户 id 1,匹配表中双向匹配的 id 是 id=2 和 id=4。因为第一个匹配第二个,反之亦然(1-2 和 2-1 :: 1-4 和 4-1)。

对于给定的 id 4,只有一个 id 在两个方向(1-4 和 4-1)上匹配,然后只有 id=1 在两个方向上与 id 4 匹配。我想选择在两个方向上匹配的 id给定的 id。这个概念很清楚,不是吗?但是,我如何在选择语句中做到这一点?谁能帮助我?谢谢你。

4

1 回答 1

1

对于 id 4:

SELECT
distinct m1.id_user_b
FROM 
MATCHES M1
JOIN MATCHES M2 ON M1.ID_USER_A = M2.ID_USER_B AND M2.ID_USER_A = M1.ID_USER_B
WHERE M1.ID_USER_A = 4

并将4更改为参数。

于 2012-05-21T08:41:33.037 回答