假设我有两个表,新闻和评论。
news (
id,
subject,
body,
posted
)
comments (
id,
parent, // points to news.id
message,
name,
posted
)
Run Code Online (Sandbox Code Playgroud)
我想创建一个查询,以获取最新的 x # 条新闻以及每条新闻帖子的最新评论的名称和发布日期。
就选择子查询中的所有注释而言,速度很重要,这不是一个选项。
小智 5
我刚刚意识到,如果新闻表中没有附加评论,则查询不会返回结果,这是修复方法以及帖子总数的添加列:
SELECT news.*, comments.name, comments.posted, (SELECT count(id) FROM comments WHERE comments.parent = news.id) AS numComments
FROM news
LEFT JOIN comments
ON news.id = comments.parent
AND comments.id = (SELECT max(id) FROM comments WHERE parent = news.id)
Run Code Online (Sandbox Code Playgroud)