我有以下表格:
航班: id,idcompany,idplane,fromCity,toCity,起飞...
公司: ID,名称
飞机: ID,名称
城市: ID,名称
我想在同一查询中声明两个城市的名称“ fromCity,toCity”。
我这样做的目的是立即获取城市名称,因此我可以将其显示给客户端,而无需执行其他查询即可获取城市名称。
这是我的尝试:
SELECT f.id, f.takeoff, f.arrival, ct.name as fromCity, f.toCity, c.name as company, p.name as plane
FROM flights f, companies c, planes p, cities ct
WHERE f.idCompany = c.id AND f.idPlane = p.id AND f.fromCity = ct.id
ORDER BY f.takeoff ASC
该查询将返回“ fromCity”的名称,但返回“ toCity”的id,那么我该怎么做才能通过同一查询获得两个名称?
您可以使用此:
SELECT
f.id, f.takeoff, f.arrival, ct1.name as fromCity
,ct2.name as toCity, c.name as company, p.name as plane
FROM
flights f
inner join
companies c
on
f.idCompany = c.id
inner join
planes p
on
f.idPlane = p.id
inner join
cities ct1
on
f.fromCity = ct1.id
inner join
cities ct2
on
f.toCity = ct2.id
ORDER BY
f.takeoff ASC;
并从现在开始尝试不使用 old-style-join。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句