MySql将结果组合并应用于第二个表

时间:2013-11-11 10:29:40

标签: php mysql

我很难从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等的所有组合,但是我无法理解它 请帮忙,有什么想法吗?

1 个答案:

答案 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