用具有相同列名的3个表排序

时间:2019-07-15 02:58:43

标签: php mysql laravel eloquent

我要选择我的3个表并按相同的列名称进行排序

例如:

table 1: id, name

table 2: id, table_1_id, process, datetime

table 3: id, table_1_id, process, datetime

我想选择表2和表3以及表1的ID,然后按日期时间对其进行排序。我该如何以雄辩的方式做到这一点?谢谢

我想发生的事的例子。

id|name |process|datetime 2 |dina |Making |2019-7-15 3 |mark |Molding|2019-7-14 1 |ares |Folding|2019-7-13

1 个答案:

答案 0 :(得分:1)

我用union()解决了,这是解决方案

$table2 = DB::table('table1')
           ->join('table2', 'table2.table1_id', '=', 'table1.id')
           ->orderBy('table2.datetime', 'DESC')
           ->select('table1.*', 'table2.*');

$table = DB::table('table1')
          ->join('table3', 'table3.table1_id', '=', 'table1.id')
          ->orderBy('table3.datetime', 'DESC')
          ->select('table1.*', 'table3.*')
          ->union($table2)->get();

谢谢大家的帮助!