Подзапросы в WHERE
Результат подзапроса может стать частью условия
В WHERE подзапрос часто вычисляет значение или набор значений, с которыми затем сравниваются строки внешней выборки.
SELECT name
FROM products
WHERE price > (
SELECT AVG(price)
FROM products
);
Сначала вычисляется средняя цена, затем внешний запрос оставляет товары дороже этого значения.
Если значений несколько, нужен подходящий оператор
SELECT name
FROM users
WHERE id IN (
SELECT user_id
FROM orders
WHERE status = 'PAID'
);
Внутренний запрос может вернуть много user_id. Оператор IN как раз проверяет, входит ли идентификатор пользователя в этот набор.
Сначала определяй форму результата подзапроса, потом выбирай оператор.
Одно значение естественно сравнивается через
=, > и похожие операторы; набор значений требует конструкции, которая умеет работать с набором.
Проверь себя
Разбор задания
Ментор знает решение и поможет тебе прийти к нему самостоятельно
Войди, чтобы использовать Ментора
Ментор учитывает текущую задачу и историю диалога.
Войти
Проверь важные нюансы и ответ после собственной попытки.
Войди, чтобы посмотреть решение
Решение и разбор доступны после авторизации.
Войти