Вход на сайт
any, all mySQL
386 просмотров
Перейти к просмотру всей ветки
Программист коренной житель
в ответ melodi_ 10.06.21 10:39, Последний раз изменено 10.06.21 11:31 (Программист)
Пусть у нас в таблице 6 самолетов с количеством мест: 1, 2, 3, 4, 5, 5
Expr1:
no_seats = (select max(no_seats) from plane)
Возвращает все самолеты с максимальным количеством мест. (результат: 2 строки с самолетами по 5 мест)
Expr2:
no_seats <> all (select max(no_seats) from plane)
Возвращает все самолеты, количество мест в которых меньше, чем максимальное. (4 строки с самолетами с местами 1, 2, 3, 4)
Expr3:
no_seats > any(select no_seats from plane)
Возвращает все самолеты, количество мест в которых больше, чем минимальное. (5 строк с самолетами с местами 2, 3, 4, 5, 5)
Expr1 OR Expr2 - объеденяет множества и получется 6 строк с самолетами с местами 1, 2, 3, 4, 5, 5
Expr1 OR Expr2 AND Expr3 - вычисляет перечение множеств (Expr1 OR Expr2) и Expr3 - получается 5 строк с самолетами с местами 2, 3, 4, 5, 5