一文解决Column ‘xxx‘ in field list is ambiguous问题

导读:本篇文章讲解 一文解决Column ‘xxx‘ in field list is ambiguous问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1. 复现问题

使用如下SQL查询数据:

 SELECT
  id as id,
	`user`.login_name AS user_mobile,
	apply_status,
	( SELECT `value` FROM data_dict WHERE CODE = apply_status ) AS apply_status_value,
	apply_no,
	application_name,
	belong_org_code,
	belong_org_data_dict.`value` AS belong_org_code_value,
	business_contact_name,
	business_contact_mobile,
	auth_way,
	( SELECT `value` FROM data_dict WHERE CODE = auth_way ) AS auth_way_value,
	REPLACE ( REPLACE ( apply_service_type, '"', '' ), '"', '"' ) apply_service_type,
	apply_need_desc,
	apply_time,
	audit_time,
	audit_suggest 
FROM
	application_apply 
LEFT JOIN user ON user.id = application_apply.apply_user_id
LEFT JOIN data_dict belong_org_data_dict ON belong_org_data_dict.`code` = application_apply.belong_org_code 

却报出如下错误:

在这里插入图片描述

Column 'id' in field list is ambiguous

2. 分析问题

我们在解决问题之前,首先要分析问题。

做到知其然,知其所以然,这样才能有所成长,进而避坑。

Column 'id' in field list is ambiguous翻译成中文就是字段列表中的列id不明确

为什么不明确这个id呢?

通过如上的·mysql语句可得,application_apply表关联user表,但 application_apply表中存在id字段,而user表中也存在id字段。

但如上mysql语句,并没有说明id字段是哪张表中的,因而mysql认为这个id字段是不明确的。

3. 解决问题

既然知道问题的原因,我们便可如下修改SQL语句:

 SELECT
  	application_apply.id as id,
	`user`.login_name AS user_mobile,
	apply_status,
	( SELECT `value` FROM data_dict WHERE CODE = apply_status ) AS apply_status_value,
	apply_no,
	application_name,
	belong_org_code,
	belong_org_data_dict.`value` AS belong_org_code_value,
	business_contact_name,
	business_contact_mobile,
	auth_way,
	( SELECT `value` FROM data_dict WHERE CODE = auth_way ) AS auth_way_value,
	REPLACE ( REPLACE ( apply_service_type, '"', '' ), '"', '"' ) apply_service_type,
	apply_need_desc,
	apply_time,
	audit_time,
	audit_suggest 
FROM
	application_apply 
LEFT JOIN user ON user.id = application_apply.apply_user_id
LEFT JOIN data_dict belong_org_data_dict ON belong_org_data_dict.`code` = application_apply.belong_org_code 

即在id前加上application_apply.

查询结果如下图所示:

在这里插入图片描述

4. 问题总结

Column ‘xxx‘ in field list is ambiguous这种错误,往往存在于多表查询语句中。

多表存在相同的字段,但select语句中并没有指名该字段属于哪张表,便报出了这种错误。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99134.html

(1)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!