Laravel 4 - JOIN - Same column name

一世执手 提交于 2019-12-10 22:20:04

问题


I do currently use this code to retrieve the required data from my database

    $query = DB::table('packages')
        ->join('assigned_packages', function($join) use($id)
        {
            $join->on('packages.id', '=', 'assigned_packages.registered_package_id')
                ->where('assigned_packages.customer_id', '=', $id);
        })
        ->join('registered_packages', function($join)
        {
            $join->on('packages.id', '=', 'registered_packages.id')
                ->on('registered_packages.id', '=', 'assigned_packages.registered_package_id');
        });

It works fine, however the problem is that this tables have columns with the same name, and therefore only the last one is in the result. How can i fix that? Normally i would use the as option in the query, but i honestly do not know how I can add it to my current JOIN code from above.


回答1:


$query = DB::table('packages')
->join(...)
->join(...)
->select(DB::raw('packages.name as name1, assigned_packages.name as name2'))
->get();

edit:

$sql = "select a.name as name1, b.name as name2";
$sql .= " from a left join b on a.id=b.id1 and b.id2=&id";
$result = DB::select($sql);


来源:https://stackoverflow.com/questions/25859626/laravel-4-join-same-column-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!