【发布时间】:2019-11-25 05:11:28
【问题描述】:
所以我在 phpmyadmin 中编写了这个查询,它工作正常
SELECT als.name,als.airlineCode, flights.planeNumber, flights.departureAirport,
dep_air.name,flights.departurelTime, flights.arrivalAirport,
arr_air.name,flights.arrivalTime FROM `flights`
JOIN airports AS dep_air
ON flights.departureAirport = dep_air.airportCode
JOIN airports as arr_air
ON flights.arrivalAirport = arr_air.airportCode
JOIN airlines as als
ON flights.airlineReference = als.airlineCode
WHERE dep_air.airportCode = 'YYZ' AND arr_air.airportCode = 'YUL' ;
但是当我在控制器的 laravel 中尝试这个时
public function formSubmit(){
$flights = DB::table('flights')
->select('als.name','als.airlineCode','flights.planeNumber','flights.departureAirport','dep_air.name','flights.departurelTime','flights.arrivalAirport','arr_air.name','flights.arrivalTime')
->join('airports as dep_air','flights.departureAirport','dep_air.airportCode')
->join('airports as arr_air' ,'flights.arrivalAirport','arr_air.airportCode')
->join('airlines as als,','flights.airlineReference','als.airlineCode')
->where('dep_air.airportCode','=', 'YYZ')
->where('arr_air.airportCode','=', 'YUL')
->get();
dd($flights);
return view('oneWayTrips', compact('flights'));
}
我收到以下错误
Illuminate\Database\QueryException SQLSTATE[42S22]:找不到列: 1054 “字段列表”中的未知列“als.name”(SQL:选择
als.name,als.airlineCode,flights.planeNumber,flights.departureAirport,dep_air.name,flights.departurelTime,flights.arrivalAirport,arr_air.name,flights.arrivalTimefromflights内连接airports作为dep_air在flights.departureAirport=dep_air.airportCode内连接airports为arr_aironflights.arrivalAirport=arr_air.airportCode内连接airlines作为als,在flights.airlineReference=als.airlineCode其中dep_air.airportCode= YYZ 和arr_air.airportCode= YUL)
更新:
在拼写错误修复后查询几乎可以工作,但我注意到其中一个值缺少 arr_air.name 。 dep_air.name 工作正常并显示出发机场名称,arr_air.name 代表到达机场的名称
这是当前的查询
【问题讨论】:
-
哎呀感谢大家让我认识,但是我在原始帖子中更新了一个新错误。
-
在修复错字后更新是因为我在所有 3 个表中都有一个名为 name 的字段,因此它们相互覆盖,因为 als.name 应该是加拿大航空公司,另外两个应该是机场名称跨度>