我有一张表'关系'如下所示
id | user_1_nick | user_2_nick
1 peter kevin
2 jake peter
3 peter abby
4 aaron abby
5 abby kevin
所以,如果彼得登录他的朋友'将显示如下
1 abby
2 jake
3 kevin
Abbys'朋友'如下
1 aaron
2 kevin
3 peter
我希望你能帮助我。 提前谢谢。
更新
我当前的查询如下所示:
SELECT * FROM relationships AS r
LEFT JOIN members AS m
ON (r.user_2 = m.hash AND r.user_2 != '$userhash')
OR (r.user_1 = m.hash AND r.user_1 != '$userhash')
WHERE (user_2 = '$userhash' OR user_1 = '$userhash')
AND accepted = '1'
答案 0 :(得分:0)
在MySQL中
您必须在两个方向上过滤朋友并合并结果,如下图所示。
因此可以使用查询获取SELECT A.FRIENDS FROM
(SELECT user_2_nick friends FROM relationships
WHERE user_1_nick='peter'
UNION
SELECT user_1_nick friends FROM relationships
WHERE user_2_nick='peter') A
ORDER BY A.FRIENDS;
的朋友:
abby
SELECT A.FRIENDS FROM
(SELECT user_2_nick friends FROM relationships
WHERE user_1_nick='abby'
UNION
SELECT user_1_nick friends FROM relationships
WHERE user_2_nick='abby') A
ORDER BY A.FRIENDS;
with:
{{1}}
以下是 SQL FIDDLE DEMO