Как исправить следующий оператор MYSQL?

Перечислите количество судей, окончивших каждую юридическую школу. Таблицы: Presidents, Judges и Appoints. Judges имеет столбцы JName, DateOfBirth, LawSchool. Я попробовал следующее утверждение и столкнулся с ошибкой, которую не совсем понимаю:

SELECT jname, COUNT(jname)
FROM Judges J1, Judges J2
WHERE J1.LawSchool = J2.LawSchool AND J1.Jname != J2.Jname;

Ошибка: ERROR 1052: Column 'jname' in field list is ambiguous.

Используйте SELECT J1.name, то есть квалифицируйте name, используя один из псевдонимов.

Tim Biegeleisen 03.11.2018 01:53

Неоднозначность означает, что столбец (в данном случае jname) был найден более чем в одной таблице в запросе, поэтому вам нужно указать, какая ссылка на таблицу должна использоваться для выборки столбца, как сказал Тим.

Paul T. 03.11.2018 01:55

Я считаю, что вы могли бы использовать здесь другое утверждение, например, select lawschool, count(*) from judges group by lawschool;

Nicholas Hirras 03.11.2018 01:56

Можете ли вы показать образцы данных для таблицы Judges вместе с ожидаемым результатом?

Tim Biegeleisen 03.11.2018 02:10

Пожалуйста, прекратите использовать неявные соединения на основе запятых и используйте Явный синтаксис на основе Join

Madhur Bhaiya 03.11.2018 06:02
Освоение архитектуры микросервисов с 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
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
40
1

Ответы 1

Поле jname существует в нескольких таблицах, из которых вы выбираете данные (судьи J1 и судьи J2). Вы должны указать, из какой таблицы вы хотите получить эти данные. Но, согласно вашей задаче, я думаю, что правильный способ сделать это:

SELECT LawSchool, COUNT(*)
FROM Judges
Group By LawSchool

@TimBiegeleisen Я только что исправил свой ответ, я думаю, что до исправления весь мой ответ был ошибкой.

CoralK 03.11.2018 02:06

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