[英]SQL error in Laravel 6 when joining tables
So i wrote this query in phpmyadmin and it is working correctly所以我在 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' ;
however when i try this in laravel in the controller但是,当我在控制器中的 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'));
}
I get the following error我收到以下错误
Illuminate\\Database\\QueryException SQLSTATE[42S22]: Column not found: 1054 Unknown column 'als.name' in 'field list' (SQL: select
als
.name
,als
.airlineCode
,flights
.planeNumber
,flights
.departureAirport
,dep_air
.name
,flights
.departurelTime
,flights
.arrivalAirport
,arr_air
.name
,flights
.arrivalTime
fromflights
inner joinairports
asdep_air
onflights
.departureAirport
=dep_air
.airportCode
inner joinairports
asarr_air
onflights
.arrivalAirport
=arr_air
.airportCode
inner joinairlines
asals,
onflights
.airlineReference
=als
.airlineCode
wheredep_air
.airportCode
= YYZ andarr_air
.airportCode
= YUL)照亮\\数据库\\ 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
。arrivalTime
从flights
内加入airports
作为dep_air
的flights
。departureAirport
=dep_air
。airportCode
内加入airports
作为arr_air
的flights
。arrivalAirport
=arr_air
。airportCode
内部联接airlines
为als,
上flights
。airlineReference
=als
。airlineCode
其中dep_air
。airportCode
= YYZ和arr_air
。airportCode
= YUL)
UPDATE:更新:
The query is almost working after the typo fixes but i've noticed one of the values is missing the arr_air.name
.错误修复后查询几乎可以正常工作,但我注意到其中一个值缺少
arr_air.name
。 the dep_air.name
is working fine and showing the departure airport name, arr_air.name
represents the name for the arrival airport dep_air.name
工作正常并显示出发机场名称, arr_air.name
表示到达机场的名称
this is the query at the moment这是目前的查询
我想你必须检查“航空公司”表有“名称”字段......
You have a typo in this line 您在此行中有错字
->join('JOIN airlines as als,','flights.airlineReference','als.airlineCode')
It should be like this 应该是这样
->join('airlines as als,','flights.airlineReference','als.airlineCode')
could you please remove "JOIN" string into join function.. 您能否将“ JOIN”字符串删除到连接函数中。
REMOVE: 去掉:
->join('JOIN airlines as als,','flights.airlineReference','als.airlineCode')
And Use this : 并使用这个:
->join('airlines as als,','flights.airlineReference','als.airlineCode')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.