3.3.7. Функции в подзапросе

Теперь, после знакомства с различными формулировками вложенных подзапросов и псевдонимами легче понять текст и алгоритм реализации запроса (п. 3.1) на получение тех поставщиков продуктов для Сырников, которые поставляют эти продукты за минимальную цену:

SELECT     Продукт, Цена, Название, Статус
FROM    Продукты, Состав, Блюда, Поставки, Поставщики
WHERE   Продукты.ПР = Состав.ПР
AND     Состав.БЛ = Блюда.БЛ
AND     Поставки.ПР = Состав.ПР
AND     Поставки.ПС = Поставщики.ПС
AND     Блюдо = 'Сырники'
AND     Цена =  (       SELECT MIN(Цена)
                        FROM    Поставки X
                        WHERE   X.ПР = Поставки.ПР );

Естественно, что это коррелированный подзапрос: здесь сначала определяется минимальная цена продукта, входящего в состав Сырников, и только затем выясняется его поставщик.

На этом примере мы закончим знакомство с вложенными подзапросами, предложив попробовать свои силы в составлении ряда запросов, с помощью механизма таких подзапросов:

  1. Выдать названия всех мясных блюд.
  2. Выдать количество всех блюд, в состав которых входят помидоры.
  3. Выдать блюда, продукты для которых поставляются агрофирмой ЛЕТО.