在mysql中限制要连接的行数

时间:2010-02-11 20:37:20

标签: mysql join limit

所以我想将两个表连接在一起,但是对于第一个表中的每一行,我只想将它连接到另一个表中的前8个匹配行,按该表中的一个列排序。我可以使用任何聪明的语法,还是我需要弄乱子查询?

2 个答案:

答案 0 :(得分:2)

看看

How to select the first/least/max row per group in SQL

部分从每个组中选择前N行

  

这是一个稍微难点的问题   解决。从每个中找到一行   使用SQL的聚合很容易组   函数(MIN(),MAX()等)。   找到每个的前几个   使用该方法无法进行分组   因为只有聚合函数   返回单个值。不过,它还是   可能的事。

答案 1 :(得分:-1)

这可能不是最好的解决方案,但是假设你加入了ID,你可以在where子句中使用子查询。

select from table1 where id in (select top 8 id from table2 order by column1 desc)