4

私はおそらく少しばかげているので、誰かが助けてくれることを願っています。

シンプルな 2 列のユーザー テーブル (ID、USERNAME) があります。
画像のコメントテーブルがあります(COMMENT、COMMENTFROM、COMMENTTO)

COMMENTFROM は、コメントを作成したユーザーの ID です。COMMENTTO は、コメントが追加された画像の所有者の ID です。両方のユーザーが USERS テーブル内に保持されます。

こんな感じで行を抜き出して表示したい

"really nice photo" - to USERXYZ - from USER123**

USERS テーブルをコメント テーブルに結合すると、

WHERE comments.userfrom = users.id

これにより、行ごとに必要な 2 つのユーザー名のうちの 1 つ (またはもう 1 つ) しか取得できません。両方を手に入れる方法はありますか?

SOFでこの回答をどのように検索するかさえわかりません。以前に回答されている場合は申し訳ありません。誰かが私を正しい方向に向けることができれば、それはありがたいです:)

4

2 に答える 2

9

JOINテーブルに 2 回アクセスし、SQL 内でそれぞれに異なる識別子 (エイリアス)usersを与える必要があります。JOIN

SELECT 
    comment, 
    userFrom.username AS commentFrom,
    userTo.username AS commentTo
FROM comments 
JOIN users AS userFrom ON userFrom.ID = comment.commentFrom
JOIN users AS userTo ON userTo.ID = comment.commentTo
于 2013-06-17T02:15:14.220 に答える
-1

次のいずれかを試してください

SELECT CONCAT(c.comment," - to ",
                        (SELECT USERNAME FROM user WHERE user.ID = c.COMMENTTO LIMIT 1),
                        " - from ",
                        (SELECT USERNAME FROM user WHERE user.ID = c.COMMENTFROM LIMIT 1)) FROM comments c
于 2013-06-17T02:17:05.087 に答える