Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中限制要加入的行数_Mysql_Join_Limit - Fatal编程技术网

在mysql中限制要加入的行数

在mysql中限制要加入的行数,mysql,join,limit,Mysql,Join,Limit,所以我想将两个表连接在一起,但是对于第一个表中的每一行,我只想将它连接到另一个表中匹配的前8行,按该表中的一列排序。我可以使用任何聪明的语法,或者我需要在子查询中弄乱吗?这可能不是最好的解决方案,但如果您是在ID上加入的,您可以在where子句中使用子查询 select from table1 where id in (select top 8 id from table2 order by column1 desc) 看看 节从每组中选择前N行 这是一个稍难解决的问题 解决。从每一行中查找

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

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

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

从每组中选择前N行

这是一个稍难解决的问题 解决。从每一行中查找一行 使用SQL的聚合可以轻松创建组 函数(MIN()、MAX()等)。 从每一项中找出前几项 使用该方法无法创建组 因为聚合只起作用 返回单个值。尽管如此,它是 可能做到的


TOP子句仅为SQL Server。