不止一次加入同一张桌子

时间:2013-06-17 02:11:31

标签: mysql sql

我可能有点傻,希望有人可以提供帮助。

我有一个简单的2列用户表(ID,USERNAME) 我有一个图像评论表(评论,评论,评论)

COMMENTFROM是发表评论的用户的ID。 COMMENTTO是添加注释的图像所有者的ID。两个用户都在USERS表中。

我想拉出并显示这样的行

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

这让我感到困惑,因为如果我将USERS表加入评论表:

WHERE comments.userfrom = users.id

这只能得到我每行所需的2个用户名中的一个(或其他)。有没有办法可以同时获得两者?

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-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