我可能有点傻,希望有人可以提供帮助。
我有一个简单的2列用户表(ID,USERNAME) 我有一个图像评论表(评论,评论,评论)
COMMENTFROM是发表评论的用户的ID。 COMMENTTO是添加注释的图像所有者的ID。两个用户都在USERS表中。
我想拉出并显示这样的行
"really nice photo" - to USERXYZ - from USER123**
这让我感到困惑,因为如果我将USERS表加入评论表:
WHERE comments.userfrom = users.id
这只能得到我每行所需的2个用户名中的一个(或其他)。有没有办法可以同时获得两者?
我甚至不确定如何在SOF上搜索这个答案,如果之前已经回答过道歉。如果有人能指出我正确的方向,我们将不胜感激:)
答案 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