3

私は次のようにテーブルをセットアップしています

ここに画像の説明を入力

ステータス = 1 確認済み = 1 およびユーザー ID = 指定された結果を返す 1 つのクエリを作成しようとしています。結果として、ユーザー ID 、そのユーザー ID に関連付けられた名前、友達 ID、およびその友達 ID に関連付けられた名前を表示する必要があります。これまでのところ、ウェブ上のチュートリアルに従って、次のクエリを思いつきました

SELECT `freinds.User ID`, `freinds.Freind ID`, `users.User`, `users.User` FROM `freinds` WHERE `User ID`= 6 INNER JOIN `users` on `users.ID`=6 AND `users.ID`=`freinds.Freind ID`

ただし、このクエリで sql エラーが発生します。私がやるべきことは、ユーザーテーブルに2回内部参加することだと思いますが、その方法については正確にはわかりません

4

1 に答える 1

2

問題は、テーブル名と列名を全体としてバックティックでラップしていることです。区切る必要があります。名前が`MySQL予約キーワードにない場合は、バッククォートを削除してください。

Userまた、テーブルの各IDの名前を取得できるように、テーブルを2回結合する必要がありますFreinds

SELECT  a.`User ID`, 
        a.`Freind ID`, 
        b.User FriendName,
        c.User UserName
FROM    `freinds` a
        INNER JOIN `users` b 
            ON b.ID = a.`Freind ID`
        INNER JOIN users c
            ON c.id = a.`user ID`
WHERE   `User ID`= 6 

ID補足として、の1つがnull許容の場合、はよりLEFT JOINも優先されINNER JOINます。

結合に関する知識を完全に得るには、以下のリンクにアクセスしてください。

于 2013-01-29T05:58:43.120 に答える