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 个用户名中的一个(或另一个)。有没有办法让我两者兼得?

我什至不确定如何在 SOF 上搜索这个答案,如果之前已经回答过,我深表歉意。如果有人能指出我正确的方向,将不胜感激:)

4

2 回答 2

9

您需要对JOIN表进行users两次,并在 SQL 中为它们提供不同的标识符(也称为别名) 。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 回答