#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 customer_id;
Я получил сообщение об ошибке: ссылка на столбец «customer_id неоднозначна.
Как мне решить эту проблему?
Комментарии:
1. поставьте перед ним префикс a. или b. точно так же, как вы делали это во всех других местах, на которые ссылались в этом столбце.
2. Еще лучше не используйте a и b, используйте значимые псевдонимы, например s и c.
3. У вас действительно есть отдельная таблица продаж на каждый год?!?
Ответ №1:
Это просто означает, что несколько таблиц имеют одно и то же имя столбца, и он не знает, какой из них использовать.
В вашем случае обе sales_2015
customer_20_60
таблицы — и имеют столбец customer_id.
Убедитесь, что вы используете a.customer_id
операционную b.customer_id
во всех местах. Основываясь на вставленном вами коде, похоже, что единственное место, где этого не хватает, — это предложение order by.