0

1 つのクエリから結果を取得し、結果が数値の場合にアルファベット順で表示するのが困難です。

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 などのすべての組み合わせを試しましたが、理解できません。それ。
助けてください、何かアイデアはありますか?

4

1 に答える 1

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
于 2013-11-11T10:36:56.573 に答える