Запрос, который позволяет вывести имена и идентификаторы всех студенто - MySQL
Формулировка задачи:
Запрос, который позволяет вывести имена и идентификаторы всех студентов, для которых точно известно, что они проживают в городе, где нет ни одного университета.
Вот таблица университета
CREATE TABLE `sta5`.`university` (
`univ_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`univ_name` varchar(50) NOT NULL,
`rating` INTEGER UNSIGNED NOT NULL,
`city` varchar(50) NOT NULL,
PRIMARY KEY (`univ_id`)
)
ENGINE = InnoDB;
вот студента
CREATE TABLE `sta5`.`student` (
`student_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`surname` varchar(50) NOT NULL,
`name` varchar(50) NOT NULL,
`stipend` varchar(50) NOT NULL,
`kurs` INTEGER UNSIGNED NOT NULL,
`city` varchar(50) NOT NULL,
`birthday` date NOT NULL,
`univ_id` INTEGER UNSIGNED NOT NULL REFERENCES `university`,
PRIMARY KEY (`student_id`)
)
ENGINE = InnoDB;
Вот что пытался сделать
SELECT `student`.student_id, `student`.surname,`student`.city
FROM `UNIVERSITY`,`student`
WHERE `student`.univ_id=`university`.univ_id and `student`.city<>`university`.city;
Решение задачи: «Запрос, который позволяет вывести имена и идентификаторы всех студенто»
textual
Листинг программы
SELECT `student`.student_id, `student`.surname,`student`.city FROM `student` LEFT JOIN `UNIVERSITY`ON `student`.city = `university`.city WHERE `university`.city IS NULL
Объяснение кода листинга программы
Вот что делается в данном коде:
- Выполняется запрос SELECT к таблице
student
, выбираются поляstudent_id
,surname
,city
. - Результат запроса присоединяется к таблице
UNIVERSITY
с помощью оператора LEFT JOIN, используя условие равенства городов. - В WHERE-условии проверяется, что поле
city
из таблицыuniversity
равно NULL, т.е. университет с таким городом не найден. - Результатом запроса будет список студентов, у которых не найден соответствующий университет по городу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д