我有两个大型查询(它们来自两个 SQL Server 视图),我需要将它们合并以显示在一个表中,并且能够进行排序和搜索。有几百万行,所以分页是必须的。这两个查询包含不同的数据,但格式设置为适合同一个表,并且行根据排序相互穿插。
// Trivial example for demonstration
$queryA = ModelA::select("A, B, C");
$queryB = ModelB::select("A, D as B, C");
$queryA->union($queryB);
$queryA->where("A", "=", "search");
return $queryA->paginate(5);
分页似乎不起作用。我从两个查询中都得到了所有结果。是否可以使用 Eloquent 对这些结果进行分页,而不必->get()
整个结果集?
答案 0 :(得分:0)
尝试使用此代码
$queryA = ModelA::select("A, B, C");
$queryB = ModelB::select("A, D as B, C");
$queryA->where("A", "=", "search");
$query = $queryA->unionAll($queryB);
return $query->paginate(5);
答案 1 :(得分:0)
两个选择语句都是错误的。
试试这个
$queryB = ModelB::select('A as B', 'D as C');
$queryA = ModelA::select('A', 'B', 'C')
->where("A", "=", "search")
->union($queryB)
->paginate(15);
return $queryA;