我很难从1个查询中获取结果,并在结果为数字时以alpha顺序显示它们。
TABLE1: "users" ROWS: user_id, username
TABLE2: "friends" ROWS: user_id, friend_id, confirmed
当你与某人或他们交朋友时,如果你确认,你就会创建一个“确认状态”为1 考虑到这一点:
如果我进行以下查询:
SELECT user_id
FROM friends
WHERE friend_id = 4
AND confirmed = 1
UNION
SELECT friend_id
FROM friends
WHERE user_id = 4
AND confirmed=1
我得到了所有朋友ID的列表。我是用户'4'
我现在要做的是获取此结果并从“用户”中查找他们的用户名并将其按字母顺序排列以编译“好友列表”
我已经尝试了JOIN等的所有组合,但是我无法理解它
请帮忙,有什么想法吗?
答案 0 :(得分:1)
SELECT u.*
FROM user u
JOIN
( SELECT user_id
FROM friends
WHERE friend_id = 4
AND confirmed = 1
UNION
SELECT friend_id
FROM friends
WHERE user_id = 4
AND confirmed=1
) x
ON x.user_id = u.user_id
ORDER
BY something