为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白猪掌柜的 2022-07-22 10:15:57
我想使用 laravel 分页从两个表properties和properties_x whereproperties.address或properties_x.address_xlike中获取结果。test这两个表之间没有外键关系。propertiesid  name    address1   test1   2   test2   3   test3   4   test3   test5   test4   testproperties_xid  name    address1   test1_x test2   test2_x 3   test3_x 4   test3_x test5   test4_x     Expected results:    name     address    test3    test    test4    test    test1_x  test    test3_x  test
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

用于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);


查看完整回答
反对 回复 2022-07-22
?
青春有我

TA贡献1784条经验 获得超8个赞

我不知道是否有其他方法,但它对我很有效


$res= [];


$tableONe = Property::where('address','test')->get();


array_push($res,$tableOne);



$tableTwo = PropertyX::where('address','test')->get();


array_push($res,$tableTwo);

现在 $res 将两个数据表放在一起



查看完整回答
反对 回复 2022-07-22
?
FFIVE

TA贡献1797条经验 获得超6个赞

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);


查看完整回答
反对 回复 2022-07-22
  • 3 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信