FROM Продукты p JOIN Наличие n ON p.ID_продукта = n.Продукт
WHERE Цена = ( SELECT MIN (Цена) FROM Наличие);
| Результат
|
|
| Продукт
| Цена
|
| Зелень
| 34,96
|
Подзапрос ищет минимальную цену в таблице Наличие, а основной запрос выбирает продукты с найденной ценой.
Следует заметить, что если агрегатные функции используются с предложением GROUP BY, то подзапрос может вернуть многочисленные значения. Они, следовательно, не допустимы в подзапросах такого характера. Даже если GROUP BY и HAVING используются таким способом, что только одна группа выводится с помощью подзапроса, команда будет отклонена в принципе.
Если не удается построить подзапрос, возвращающий единственное значение вы должны использовать предикаты IN, ANY или ALL. Но следует заметить, что предикаты BETWEEN, LIKE, и IS NULL не могут использоваться с подзапросами
Следует отметить все подзапросы в качестве результата должны возвращать одиночный столбец или одиночное выражение (может быть основано на нескольких столбцах). Это обязательное требование, поскольку результат запроса сравнивается с одиночным значением. Исключением из этого правила является ситуация, когда подзапросы используются с оператором EXISTS, который мы будем рассматривать ниже.