如何从同一张桌子获得价值

时间:2018-01-11 07:13:25

标签: mysql

现在我想得到一个评论列表,我有两个名为TB_COMMENT,TB_USER的表; TB_COMMENT表有三个字段:WORK_ID,USER_ID,ATED_USER_ID; TB_USER表有三个字段:USER_ID,NICKNAME。 现在前端给了我一个workId,我需要返回列表包括: userId,nickname,atedUserId,atedNickname。(和atedUserId,atedNickname可能不存在)。 我只写这个sql语句:

SELECT DISTINCT TB_USER.USER_ID, TB_USER.NICKNAME, TB_COMMENT.ATED_USER_ID
FROM TB_USER, TB_COMMENT 
WHERE TB_COMMENT.WORK_ID = #{workId} AND TB_COMMENT.USER_ID = TB_USER.USER_ID`

我不知道如何获取atedNickname。希望有人可以帮助我,谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在TB_USER外键

上再加ATED_USER_ID次加入
SELECT DISTINCT ua.USER_ID, ua.NICKNAME, ub.USER_ID, ub.NICKNAME
FROM TB_USER ua INNER JOIN TB_COMMENT c ON ua.USER_ID = c.USER_ID
LEFT JOIN TB_USER ub ON ub.USER_ID = c.ATED_USER_ID
WHERE c.WORK_ID = #{workId}