【问题标题】:Limit the number of rows to join to, in mysql在mysql中限制要加入的行数
【发布时间】:2010-02-11 20:37:20
【问题描述】:

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

【问题讨论】:

    标签: mysql join limit


    【解决方案1】:

    看看

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

    从每组中选择前 N 行

    这是一个稍微困难的问题 解决。从每个中查找一行 使用 SQL 的聚合组很容易 函数(MIN()、MAX() 等)。 从每个中找到前几个 使用该方法无法进行组 因为只有聚合函数 返回单个值。尽管如此,还是 可以做。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • TOP 子句仅适用于 SQL Server。
      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2015-11-30
      • 1970-01-01
      • 2014-07-03
      • 2019-01-26
      相关资源
      最近更新 更多