gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:31 24 4
gpt4 key购买 nike

我有以下表格:

航类 id, idcompany, idplane, fromCity, toCity, takeoff...

公司: id, name

平面 id, name

城市 id, name

我想在同一个查询中声明两个城市的名称“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从现在开始。

关于MYSQL:通过同一个表中的两个外键进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37482774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com