【发布时间】:2014-10-10 09:38:24
【问题描述】:
MySql 中有这个结构
我想得到:
第一篇文章,来自最后一个主题,类别为“新闻”
在此示例中,它是来自帖子的行,其中 id = 2,如图像上标记的那样
到目前为止,我得到了这个查询:
SELECT *
FROM forum_post AS p
LEFT JOIN forum_topic AS t ON p.topic_id = t.id
LEFT JOIN forum_category AS c ON t.category_id = c.id
WHERE c.title = 'News' AND t.id = MAX(t.id)
ORDER BY p.id ASC LIMIT 1
编辑:
肮脏的解决方案:
SELECT * FROM forum_post
WHERE topic_id = (SELECT MAX(id) FROM forum_topic WHERE category_id = 1)
ORDER BY id ASC LIMIT 1
【问题讨论】:
-
最后一个主题 = Max(Topic_Id) ?
-
是的,最后一个主题将始终位于表格末尾
-
@Ing.MichalHudak 查看 sqlfiddle.com
标签: mysql left-join greatest-n-per-group