Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






FROM Соcтав





WHERE Блюдо IN (SELECT ID_блюда

FROM Блюда

WHERE Основа = ' Молоко ' );

При обработке полного запроса система выполняет, прежде всего, вложенный подзапрос. Этот подзапрос выдает множество номеров блюд, основой которых является молоко, а именно множество (7, 8, 12, 18, 22, 24, 28, 31). Поэтому первоначальный запрос эквивалентен такому простому запросу:

SELECT *

FROM Соcтав

WHERE Блюдо IN (7, 8, 12, 18, 22, 24, 28, 31);

Приведем пример запроса с несколькими уровнями вложенности:

Пример 27.

SELECT p.*, Количество, Цена

FROM Продукты p LEFT JOIN Наличие n
ON p. ID_Продукта = n.Продукт

WHERE p.ID_Продукта IN (SELECT Продукт

FROM Соcтав

WHERE Блюдо IN (SELECT ID_блюда

FROM Блюда

WHERE Основа = ’Молоко’));

Результат  
ID_Продукта Про дукт Белки Жиры Угле воды К Са Na B2 PP C Коли чество Цена
  Масло             0,1   NULL   274,61
  Яйца             4,4 1,9 NULL   111,83
  Сметана                     206,60
  Молоко             1,3       83,80
  Творог             2,7       82,80
  Рис             0,4   NULL   51,17
  Мука             1,2   NULL   43,77
  Яблоки   NULL         0,3   NULL   189,92
  Сахар NULL NULL         NULL NULL     96,14

 

Этот запрос выдает информацию о продуктах, их цене и наличии на складе, необходимых для приготовления блюд на основе молока.

В любой ситуации, где вы можете использовать реляционный оператор сравнения (=), вы можете использовать IN. В отличие от реляционных операторов, IN не может заставить команду потерпеть неудачу, если больше чем одно значение выбрано подзапросом. Заметим, что использование IN соответствует операции пересечения реляционной алгебры, а NOT IN разности.

 

Использование одной и той же таблицы во внешнем и вложенном подзапросе

Пример 28.

Выдать номера Блюд, в состав которых входят продукты, необходимые для приготовления сырников.

SELECT DISTINCT Блюдо

FROM Соcтав

WHERE Продукт IN (SELECT Продукт







Date: 2015-09-18; view: 324; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию