我要选择我的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
答案 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();
谢谢大家的帮助!