Laravel 从两个表中获取数据而不使用分页连接

我想使用 laravel 分页从两个表properties和properties_x whereproperties.address或properties_x.address_xlike中获取结果。test


这两个表之间没有外键关系。


properties


id  name    address

1   test1   

2   test2   

3   test3   

4   test3   test

5   test4   test


properties_x


id  name    address

1   test1_x test

2   test2_x 

3   test3_x 

4   test3_x test

5   test4_x 


    Expected results:

    name     address

    test3    test

    test4    test

    test1_x  test

    test3_x  test


白猪掌柜的
浏览 153回答 3
3回答

RISEBY

用于union all合并两个表的数据,并从数据库中的这些数据中获取列,以便您可以使用分页。试试这样:$p1 = DB::table('properties')        ->where('address', 'test')        ->select('name', 'address');$p2 = DB::table('properties_x')         ->where('address', 'test')         ->select('name', 'address');$p = $p1->unionAll($p2);DB::table(DB::raw("({$p->toSql()}) AS p"))->mergeBindings($p)->select('name', 'address')->paginate(10);

青春有我

我不知道是否有其他方法,但它对我很有效$res= [];$tableONe = Property::where('address','test')->get();array_push($res,$tableOne);$tableTwo = PropertyX::where('address','test')->get();array_push($res,$tableTwo);现在 $res 将两个数据表放在一起

FFIVE

union all 然后 laravel 查询生成器为 mysql union 提供 unionAll 方法。当您进行大型项目或 ERP 级项目时,大多数情况下您需要使用联合从具有多个表的数据库中获取数据。在以下示例中,您可以看到如何在 Laravel 5 中使用 union all。例子:$silver = DB::table("product_silver")    ->select("product_silver.name"      ,"product_silver.price"      ,"product_silver.quantity");$gold = DB::table("product_gold")    ->select("product_gold.name"      ,"product_gold.price"      ,"product_gold.quantity")    ->unionAll($silver)    ->get();print_r($gold);
打开App,查看更多内容
随时随地看视频慕课网APP