按两列字符串排序
Sort by string with two columns
我有一个 table 'relationships' 如下所示
id | user_1_nick | user_2_nick
1 peter kevin
2 jake peter
3 peter abby
4 aaron abby
5 abby kevin
因此,如果 Peter 登录,他的 'friends' 将显示如下
1 abby
2 jake
3 kevin
和 Abbys 'friends' 如下
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'
在MySQL
您必须双向过滤好友,然后合并结果,如下图所示。
所以 peter
的朋友可以通过查询获取:
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;
我有一个 table 'relationships' 如下所示
id | user_1_nick | user_2_nick
1 peter kevin
2 jake peter
3 peter abby
4 aaron abby
5 abby kevin
因此,如果 Peter 登录,他的 'friends' 将显示如下
1 abby
2 jake
3 kevin
和 Abbys 'friends' 如下
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'
在MySQL
您必须双向过滤好友,然后合并结果,如下图所示。
所以 peter
的朋友可以通过查询获取:
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;