Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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/5/sql/74.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
Mysql 使用冲突的列名连接Laravel中的三个表_Mysql_Sql_Laravel_Laravel 5.1 - Fatal编程技术网

Mysql 使用冲突的列名连接Laravel中的三个表

Mysql 使用冲突的列名连接Laravel中的三个表,mysql,sql,laravel,laravel-5.1,Mysql,Sql,Laravel,Laravel 5.1,我有三个表,以下是相关列: events id name location_id org_id locations id name orgs id name 以下是我的控制器中的查询生成器: $events = DB::table('events') ->join ('locations', 'events.location_id', '=', 'locations.id') ->join('org

我有三个表,以下是相关列:

events
 id
 name
 location_id
 org_id

locations
 id
 name

orgs
 id
 name
以下是我的控制器中的查询生成器:

$events = DB::table('events')
                ->join ('locations', 'events.location_id', '=', 'locations.id')
                ->join('orgs', 'events.org_id', '=', 'orgs.id')
                ->select('events.id', 'events.name', 'orgs.name', 'locations.name')
                ->get();
    return response()->json($events);
因此,输出为:

[{"id":"2","name":"HUB 123"}, {"id":"3","name":"HUB Lounge"}]
何时应该:

 [{"id":"2","name":"Some cool event","org":"Student Senate","location":"HUB 123"}, {"id":"3","name":"Some other cool event","org":"Some club","location":"HUB Lounge"}]
看起来,因为所有三个表都有一个“name”列,所以最后一个要选择的列将覆盖它前面的列。显然这不是我想要的

有没有一种方法可以在querybuilder中为列指定一个类似于普通MySQL的新名称?这能解决我的问题吗?请举例说明你的答案。我不是MySQL专家,我是Laravel的初学者。我只是想建立一个基本的API来用于我的实际项目

谢谢大家!

为列添加别名

$events = DB::table('events')
            ->join ('locations', 'events.location_id', '=', 'locations.id')
            ->join('orgs', 'events.org_id', '=', 'orgs.id')
            ->select('events.id', 'events.name as event_name', 'orgs.name as org', 'locations.name as location')
            ->get();
return response()->json($events);
为列添加别名

$events = DB::table('events')
            ->join ('locations', 'events.location_id', '=', 'locations.id')
            ->join('orgs', 'events.org_id', '=', 'orgs.id')
            ->select('events.id', 'events.name as event_name', 'orgs.name as org', 'locations.name as location')
            ->get();
return response()->json($events);

非常感谢。我就知道会有这么简单的事情发生。我不得不等8分钟才接受这个答案,因为你回答得这么快:)谢谢!我就知道会有这么简单的事情发生。我要等8分钟才能接受这个答案,因为你回答得太快了:)