MySQL中在特定表的JOIN中使用LIMIT 1?

5

我想展示用户的最新活动。(你可以阅读我的上一个问题了解更多信息)

我需要进行一个大型联接操作(6个或以上的表)。

我需要每个ID只获取一行记录,但有些表中可能会包含多行相同ID的记录。例如,文章ID在“投票”表中只能有一行记录,但在“图片”表中可能会有很多行,因为一篇文章可能有多张图片,但我只想要一张图片。

所以我需要做类似于这样的操作(当然,以下代码是错误的):

SELECT table1.item, table2.item, table3.item, table4.item, table5.item 
FROM table1
LEFT OUTER JOIN ... ON ... AND ...
LEFT OUTER JOIN ... ON ... AND ...
LEFT OUTER JOIN ... ON ... AND ... LIMIT 1
LEFT OUTER JOIN ... ON ... AND ... LIMIT 1
WHERE table1.item = ?;

我该如何完成这个任务?


MySQL没有分析/窗口/排名功能来支持这样的查询 - 请参阅greatest-n-per-group标签以获取示例和方法。 - OMG Ponies
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接