SQL 4表INNER JOIN查询报ambiguous column name错误如何解决?
列名歧义报错原因及解决方案
报错核心原因
ambiguous column name 错误由字段归属不明确触发,和表关联逻辑无直接关系:
你SELECT子句中出现的Cin_Expéditeur、Numero_Agent、Cin_Destinataire三个字段,在当前查询关联的多张表中同时存在,SQL引擎无法判断你需要返回哪张表的该字段值,因此触发报错。
具体字段重复情况:
Cin_Expéditeur同时存在于Expéditeur表、Transfert_Argent表Numero_Agent同时存在于Agent表、Transfert_Argent表Cin_Destinataire同时存在于Destinataire表、Transfert_Argent表
修复方案
给上述三个字段加上对应表的别名限定即可,因为你使用的是内连接,关联条件已经保证两张表的同名字段值完全一致,任选一张表加别名都不会影响查询结果,参考修正后的SQL:
SELECT E.Cin_Expéditeur, Nom_Expéditeur, Prénom_Expéditeur, Phone_Expéditeur, Adresse_Expéditeur, A.Numero_Agent, D.Cin_Destinataire, Numero_Transfert, Code_Transfert, Montant_Transfert FROM Expéditeur E INNER JOIN Transfert_Argent TA ON (E.Cin_Expéditeur = TA.CIN_Expéditeur) INNER JOIN Agent A ON (A.Numero_Agent = TA.Numero_Agent) INNER JOIN Destinataire D ON (D.Cin_Destinataire = TA.Cin_Destinataire)
内容的提问来源于stack exchange,提问作者oussama frija
相关产品推荐
相关产品推荐

