Mysql 如何从同一个表中获取值

Mysql 如何从同一个表中获取值,mysql,Mysql,现在我想得到一个评论列表,我有两个表名为TB_COMMENT,TB_USER; TB_COMMENT表有三个字段:WORK_ID、USER_ID、ATED_USER_ID TB_用户表有三个字段:用户ID、昵称。 现在前端给我一个工作ID,我需要返回列表,包括: userId、昵称、atedUserId、atedNickname。(并且atedUserId、atedNickname可能不存在)。 我只写了这句sql语句: SELECT DISTINCT TB_USER.USER_ID, TB_U

现在我想得到一个评论列表,我有两个表名为TB_COMMENT,TB_USER; TB_COMMENT表有三个字段:WORK_ID、USER_ID、ATED_USER_ID TB_用户表有三个字段:用户ID、昵称。 现在前端给我一个工作ID,我需要返回列表,包括: userId、昵称、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。希望有人能帮助我,谢谢。

您需要在
ATED\u USER\u ID
外键上再次加入
TB\u USER

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}

哪个表有
atedNickname
列?不,这只是一个昵称,但来自ATED_用户ID如果您仍在挣扎,请参阅@qabout you's welcome:)另外,请不要忘记投票/接受有用的答案。现在,问题是ATED_用户ID可能不存在,如果不存在,则无法获取记录。你有什么办法吗?很抱歉,我之前没有问清楚。我说“不存在”表示值为null@qbout答案中所做的更改。。。最后一个连接应根据您的要求保留连接