MYSQL:通过同一张表中的两个外键选择

穆罕默德

我有以下表格:

航班: 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,那么我该怎么做才能通过同一查询获得两个名称?

范·巴赫(Pham X.Bach)

您可以使用此:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章