我有一个数据库,其中包含与一对多关系中的每个用户相关的用户和注释。
我想创建一个查询,返回用户的详细信息,包括最后注释。
这里举例说明数据:
因此,对于用户David,结果中包含的注释应为note.id = 6,例如John note.id = 3。
SELECT user.firstname,
user.lastname,
note.note
LEFT JOIN note
ON note.userID = user.id
我可以向此SQL查询添加哪些内容,仅包括每个用户的最后添加的注释?
答案 0 :(得分:1)
添加where
子句,以及select
中可用的MAX(id)
。
WHERE note.id = ( SELECT MAX(id) FROM note)
编辑:
SELECT user.firstname,
user.lastname,
note.notes
FROM user
LEFT JOIN note ON note.userid = user.id
WHERE note.id = ( SELECT MAX(id) FROM note
WHERE note.userid = user.id)
OR note.userid IS NULL --EDIT
答案 1 :(得分:0)
SELECT firstname, lastname, note
FROM user u
LEFT JOIN (SELECT *
FROM note
ORDER BY id DESC) n
ON u.id = n.userid
GROUP BY u.id