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

SQL通过公共ID列连接三表创建视图报重复列错误解决方法

错误原因

你的语句存在两个直接导致执行失败的问题:

  • 视图名使用了全角弯引号‘’,这不是SQL支持的合法标识符符号,解析器读到这个非法符号后会出现语法解析错位,这也是最初提示from airline a行出错的原因——报错提示的位置和实际触发错误的位置出现了错位。
  • SELECT子句中重复返回了三次airline_id列,分别来自airline、maintenance、flight三张表。三张表通过airline_id做等值关联,匹配到的行里该列的值完全一致,而视图不允许存在重名列,因此触发duplicate column id报错。
修正方案

因为关联逻辑已经保证三张表的airline_id完全匹配,只需要保留其中一个表的airline_id即可,同时把视图名的非法引号替换为对应数据库支持的标识符包裹符(MySQL用反引号,标准SQL用双引号,也可以直接省略引号),修正后的语句如下:

Create view `Runway_crew` as
    Select 
        a.airline_id,
        a.craft_model,
        m.engine_check,
        m.fuel_check,
        m.flight_controls,
        m.windows_and_doors,
        m.head_mechanic,
        m.head_engineer,
        m.craft_status,
        f.departure_datetime,
        f.runway
    From airline a
    Join flight f
        On f.airline_id = a.airline_id
    Left join maintenance m
        On a.airline_id = m.airline_id;

补充说明

如果有特殊业务需求需要保留三个来源的airline_id做溯源,必须给重复列设置不同别名避免重名,示例写法:

Select 
    a.airline_id as base_airline_id,
    m.airline_id as maintenance_match_id,
    f.airline_id as flight_match_id,
    -- 其余业务列保持不变

日常写SQL时注意所有符号都使用半角英文格式,避免全角符号导致的解析错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:27:22