You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL连接查询:如何将国家ID替换为国家名称显示?

修正SQL查询:将航班表中的国家ID替换为国家名称

先给你指出原查询里的两个核心问题:

  • JOIN语句缺了**ON**关键字,这是SQL关联表的必备语法,原语句里直接写join countries flightticket.country_from = countries.country_id是不合法的
  • 只关联了一次countries表,没办法同时拿到出发地和目的地对应的国家名称——我们得两次关联这个表,用别名来区分不同的关联逻辑

下面是修正后的完整查询语句,能把flightticket里的country_from和country_to的ID替换成对应的国家名称:

SELECT 
    c_from.country_name AS origin_country,
    c_to.country_name AS destination_country
FROM flightticket
JOIN countries c_from ON flightticket.country_from = c_from.country_id
JOIN countries c_to ON flightticket.country_to = c_to.country_id;

语句细节说明:

  • 给countries表分别取了c_from(对应出发国家)和c_to(对应到达国家)两个别名,这样就能在一次查询里两次关联同一张表
  • 用ON关键字明确指定了每张表的关联条件,确保ID和名称能精准匹配
  • 通过AS给输出字段取了更直观的别名(origin_country和destination_country),如果不需要的话也可以直接写c_from.country_name, c_to.country_name

要是你需要同时保留原国家ID和对应的名称,也可以调整查询字段:

SELECT 
    flightticket.country_from,
    c_from.country_name AS origin_country,
    flightticket.country_to,
    c_to.country_name AS destination_country
FROM flightticket
JOIN countries c_from ON flightticket.country_from = c_from.country_id
JOIN countries c_to ON flightticket.country_to = c_to.country_id;

内容的提问来源于stack exchange,提问作者sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:31:57