代码之家  ›  专栏  ›  技术社区  ›  MGB

具有相同键的内部联接和ORDER BY给出了模棱两可的列名

  •  -2
  • MGB  · 技术社区  · 3 年前

    当我试图按键no_auto和internal使用同一个键连接表auto和location时,我遇到了不明确的colummn name错误。这是一个任务,我不能改变数据库,我只做查询。选择的信息来自表modele和auto。where子句来自表位置,ORDER BY来自表auto和location one。我想这个错误来自于使用相同密钥的order by和internal join,我考虑过使用alias,但不知道如何使用。谢谢你的帮助。

    INNER JOIN auto
    ON modèle.code_modèle = auto.code_modèle
    INNER JOIN location
    ON auto.no_auto = location.no_auto
    WHERE coût_location > 500
    ORDER BY no_auto; ``` 
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Stoff    3 年前

    这里的问题是,您是按no_auto订购的,这在auto和location表中都存在。将前缀添加到最后一行的no_auto(最好在顶部选择),这样运行时不会出现该错误。

    所以,要么:

    SELECT *
    INNER JOIN auto
        ON modèle.code_modèle = auto.code_modèle
    INNER JOIN location
        ON auto.no_auto = location.no_auto
    WHERE coût_location > 500
    ORDER BY location.no_auto
    

    或者:

    SELECT *
    INNER JOIN auto
        ON modèle.code_modèle = auto.code_modèle
    INNER JOIN location
        ON auto.no_auto = location.no_auto
    WHERE coût_location > 500
    ORDER BY auto.no_auto
    

    不只是 无车 “,因为它不知道这两者中的哪一个” 无车 “使用。