INNER JOIN и ORDER BY с одним и тем же ключом дают неоднозначное имя столбца

Я получаю неоднозначную ошибку имени столбца при попытке ORDER BY по ключу no_auto и внутреннему объединению таблиц auto и location с одним и тем же ключом. Это задание, в котором я не могу изменить базу данных, я только делаю запросы. Выбранная информация поступает из таблиц modele и auto, где предложение находится из местоположения таблицы, а ORDER BY - из таблицы auto, а также из местоположения. Я предполагаю, что ошибка возникает из-за использования порядка и внутреннего соединения с одним и тем же ключом, я думал об использовании псевдонима, но не знаю, как это сделать. Спасибо за помощь.

SELECT *
FROM modèle
INNER JOIN auto
    ON modèle.code_modèle = auto.code_modèle
INNER JOIN location
    ON auto.no_auto = location.no_auto
WHERE coût_location > 500
ORDER BY no_auto

Нам нужно увидеть ваш пункт SELECT.

Dai 04.04.2022 01:23

Попробуйте использовать ORDER BY auto.no_auto;

Dai 04.04.2022 01:23
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
3
2
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема здесь в том, что вы заказываете по no_auto, который существует как в таблицах auto, так и в таблицах location. Добавьте префикс к no_auto в последней строке (и желательно выберите вверху), и это будет работать без этой ошибки.

Итак, либо:

SELECT *
INNER JOIN auto
    ON modèle.code_modèle = auto.code_modèle
INNER JOIN location
    ON auto.no_auto = location.no_auto
WHERE coût_location > 500
ORDER BY location.no_auto

Или:

SELECT *
INNER JOIN auto
    ON modèle.code_modèle = auto.code_modèle
INNER JOIN location
    ON auto.no_auto = location.no_auto
WHERE coût_location > 500
ORDER BY auto.no_auto

Не только «no_auto», поскольку он не знает, какой из двух «no_auto» использовать.

Другие вопросы по теме