Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4-联接-相同列名_Php_Mysql_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel 4-联接-相同列名

Php Laravel 4-联接-相同列名,php,mysql,laravel,laravel-4,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('as

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

    $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
选项,但我真的不知道如何从上面将其添加到我当前的连接代码中

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

这将生成一个对象,该对象只包含select queryy(DB::raw)的结果,而不包含上述联接的结果:(@Michael你能粘贴你想要的最终SQL吗?你是什么意思?我在问题中发布了我的联接查询。唯一的问题是联接中的列在两个表中具有相同的名称,因此我需要为它们指定一个自定义名称。因此你的->选择可以工作,但不能保留联接中的数据。你能把那些c将列放入select(DB::raw())?正如我所说的..我这样做了,但它将只产生这些列,而不会产生联接中的其他数据。