按字符串排序,有两列

时间:2018-02-06 13:01:06

标签: sql-order-by

我有一张表'关系'如下所示

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'

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