Laravel 4 - JOIN - 相同的列名

时间:2014-09-16 02:05:12

标签: php mysql laravel laravel-4

我目前使用此代码从我的数据库中检索所需的数据

    $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');
        });

它运行正常,但问题是这些表具有相同名称的列,因此只有最后一个列在结果中。我该如何解决这个问题?通常我会在查询中使用as选项,但老实说我不知道​​如何从上面将它添加到我当前的JOIN代码中。

1 个答案:

答案 0 :(得分:4)

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

修改

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