能否将表A的一列与表B的两列进行JOIN关联?附业务示例
解决方案:关联同一表两次获取出发/目的地信息
当然可以实现!你只需要两次关联同一个Airport表,通过别名区分出发地和目的地对应的机场数据就行。针对你的业务场景,我直接给你写好可用的SQL语句:
SELECT f.idFlight, f.Flightnumber, f.Date, -- 提取出发地机场的代码和名称 dep.Code AS DepartureAirportCode, dep.Name AS DepartureAirportName, -- 提取目的地机场的代码和名称 arr.Code AS ArrivalAirportCode, arr.Name AS ArrivalAirportName FROM Flight f -- 关联出发地机场:用Flight的idDepart匹配Airport的idAirport JOIN Airport dep ON f.idDepart = dep.idAirport -- 关联目的地机场:用Flight的idArrival匹配Airport的idAirport JOIN Airport arr ON f.idArrival = arr.idAirport;
简单解释下:
- 我们给
Airport表分别起了dep(代表出发地)和arr(代表目的地)两个别名,这样就能同时关联Flight表的idDepart和idArrival两个字段,不会出现字段冲突或者关联混乱的问题。 - 执行这条语句后,你会得到每趟航班的完整概览:包含航班ID、航班号、日期,还有出发地和目的地的机场代码及全称,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Brayn
相关产品推荐
相关产品推荐

