LIMIT 1 inside JOIN 来自 MySQL 中的特定表?
Posted
技术标签:
【中文标题】LIMIT 1 inside JOIN 来自 MySQL 中的特定表?【英文标题】:LIMIT 1 inside JOIN from specific tables in MySQL? 【发布时间】:2011-05-06 03:06:39 【问题描述】:我想向用户显示最近的活动。 (您可以阅读我的last question 了解更多信息)
我需要做一个大的 JOIN(超过 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 没有分析/窗口化/排名功能来支持此类查询 - 有关示例和方法,请参见 best-n-per-group 标签。 【参考方案1】:这类似于 http://dev.mysql.com/doc/refman/5.1/en/example-maximum-column-group-row.html
【讨论】:
以上是关于LIMIT 1 inside JOIN 来自 MySQL 中的特定表?的主要内容,如果未能解决你的问题,请参考以下文章