SQL关联查询报错column reference "customer_id" is ambiguous如何解决
报错原因
customer_id字段同时存在于你关联的两张表sales_2015和customer_20_60中,order by子句没有明确指定该字段归属哪张表,数据库无法判断数据源就会抛出歧义错误。
解决方案
直接在order by后的customer_id前加上对应的表别名即可,因为关联条件已经限定两张表的customer_id取值完全相等,加a或者b的别名都能生效,修改后的SQL示例如下:
select a.order_line, a.product_id, a.sales, b.customer_name, b.age from sales_2015 as a inner join customer_20_60 as b on a.customer_id = b.customer_id order by a.customer_id; -- 此处替换为b.customer_id效果完全一致
补充建议
多表关联查询场景下,所有用到的字段都建议带上对应表别名,既可以避免这类歧义报错,也能提升代码可读性,后续维护时不用反复核对字段归属的表。
内容的提问来源于stack exchange,提问作者Siti Ramadhani
相关产品推荐
相关产品推荐

