mysql - 通过第一个表主键连接两个表和组,但也有第二个表行

时间:2018-04-05 11:58:20

标签: mysql laravel join

我的问题是在Laravel:

$rows = \DB::table('first_table')
    ->select('*', 'first_table.car_id AS car_id')
    ->leftJoin('second_table', 'first_table.car_id', 'second_table.car_id')
    ->where('first_table.user_id', $user_id)
    ->groupBy('first_table.car_id')
    ->get();

上面查询的结果将是first_tablesecond_table行的所有行都将减少为1,因为groupBy

我有一个foreach循环,我想遍历first_table的每一行但是要显示second_table。但是,如果我说->groupBy('first_table.car_id')它会将second_table行减少为1,如果我说->groupBy('second_table.offer_id')它会显示比预期更多的行,那么我应该设置哪个查询来显示{{}的每一行1}}作为first_table列表中的li,并将前一个ul下的second_table行显示为每行的新li列表?

修改

我想要这样的事情:

ul

1 个答案:

答案 0 :(得分:0)

而不是select *

使用

Select tablename1.columname1, tablename2.coloumnname2

试试这个

$rows = Modelname::where('first_table.user_id', $user_id)
    ->select('tablename1.columname1', 'tablename2.coloumnname1', 'first_table.car_id AS car_id')
    ->leftJoin('second_table', 'first_table.car_id','=', 'second_table.car_id')
    ->groupBy('first_table.car_id')
    ->get();

写出第一张表的型号名称