在写左关联时SQL语句出现 Duplicate column name 'NAME'名字重复错误解决方法

本文详细解析了在执行SQL左连接查询时遇到的“Duplicate column name”错误,并提供了具体的解决方案。通过为重复字段名设置别名,确保了查询的正确执行。

话不多说直接上代码:  

 SELECT * 
          FROM `personrequireupdate` a LEFT JOIN (select p.*,o.officeid,o.name as officename from person_modifyinf p
          LEFT JOIN office o   on o.officeid=p.officeid)p  ON p.personId=a.personId 
          LEFT JOIN personrole p2 ON a.personId = p2.personid 
          WHERE a.state=0 and p.state=0

 

这样它就会报错 :

 

SELECT * 
          FROM `personrequireupdate` a LEFT JOIN (select p.*,o.officeid ,o.name as officename from person_modifyinf p
          LEFT JOIN office o   on o.officeid=p.officeid)p  ON p.personId=a.personId 
          LEFT JOIN personrole p2 ON a.personId = p2.personid 
          WHERE a.state=0 and p.state=0
> 1060 - Duplicate column name 'officeid'
> 时间: 0.083s

改成这样子:

    SELECT * 
          FROM `personrequireupdate` a LEFT JOIN (select p.*,o.officeid AS offid,o.name as officename from person_modifyinf p
          LEFT JOIN office o   on o.officeid=p.officeid)p  ON p.personId=a.personId 
          LEFT JOIN personrole p2 ON a.personId = p2.personid 
          WHERE a.state=0 and p.state=0

 

 

代码运行正常 :

SELECT * 
        
                 FROM `personrequireupdate` a LEFT JOIN (select p.*,o.officeid AS offid,o.name as officename from person_modifyinf p
          LEFT JOIN office o   on o.officeid=p.officeid)p  ON p.personId=a.personId 
          LEFT JOIN personrole p2 ON a.personId = p2.personid 
          WHERE a.state=0 and p.state=0
> OK
> 时间: 0.059s
看出为什么了吗?没错,就是因为在我们写关联语句时同样的字段出现了两次,没有给他们起别名引起的,就像我写的这个:o.officeid AS offid 。因此,在进行关联查询时,如果两张或几张表都有那同样的字段,要给它起个别名。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值