Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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_Ruby On Rails_Ruby_Pagination - Fatal编程技术网

Mysql两个表的单个结果

Mysql两个表的单个结果,mysql,ruby-on-rails,ruby,pagination,Mysql,Ruby On Rails,Ruby,Pagination,假设我有两张桌子。表1(16行)和表2(20行) 我想使用分页功能获取结果,假设每页10行 Like首先查询返回表1中的10行,然后(6+4)返回表1和表2中的10行 是否可以在单个mysql查询中实现这一点 谢谢您需要使用联盟 它允许您组合N个不同查询的结果。 这是mysql的完整指南 假设您有两个名为table1和table2 表1有一列id、姓名、生日、创建时间、年龄 表2有一列id、firstname、lastname、created\u at、salary 现在,假设我们要从两个表中选

假设我有两张桌子。表1(16行)和表2(20行)

我想使用分页功能获取结果,假设每页10行

Like首先查询返回表1中的10行,然后(6+4)返回表1和表2中的10行

是否可以在单个mysql查询中实现这一点


谢谢

您需要使用联盟 它允许您组合N个不同查询的结果。 这是mysql的完整指南

假设您有两个名为table1table2

表1有一列
id、姓名、生日、创建时间、年龄

表2有一列
id、firstname、lastname、created\u at、salary

现在,假设我们要从两个表中选择idname (在表2中没有名称我们可以将名字姓氏合并作为名称处理)

这是你需要做的

data = Table1.find_by_sql("(select table1.id , table1.name from table1) UNION (select table2.id, CONCAT(table2.firstname,' ',table2.lastname) as name from table2) limit 10 offset 10")

注意:您也可以在这两个查询中使用
where
子句来限制您想要的数据

您可以发布您到目前为止尝试过的内容吗?当第一个表开始返回空数据时,我尝试从第一个表中提取结果,然后从第二个表中提取结果保留代码从第一个表中获取的最后一个页码第二个表中的记录再次从第一页开始。我想知道他们是否有可能在mysql单次查询中实现这一点。为什么投票被否决?你可以根据自己的要求更改它,这是为了让你知道如何做