WHEREТовары.Страна_прозводитель NOT IN
FROM
FROM
WHEREТовары.Название NOT IN
FROM
FROM Товары INNER JOIN
WHEREТовары.Название NOT IN
FROM
SELECT DISTINCT
FROM
SELECT DISTINCT
FROM Категории Join Товары
SELECT Название_товара
WHERE Название_товара IN
Примеры с использованием операций IN и NOT IN
ОператорIN используется для сравнения некоторого значения со списком значений. При этом проверяется, входит ли значение в предлагаемый список.
Пример 7. Выдать список товаров, относящихся к категории «Молочные продукты».
SELECTНазвание_товара
FROM Товары
On Категории.ID_категории=Товары.Категории
WHERE Название_категории=’Молочные продукты’)
Пример 8. Выдать список товаров, которые покупали клиенты из Москвы.
В данном случае в запросе участвуют три таблицы – Товары, Продажи, Клиенты
Товары.Название_товара, Клиенты. Фамилия
(Клиенты INNER JOINПродажи
ON Клиенты.ID_Клиента = Продажи.Клиент )
INNER JOINТовары
ONТовары. ID_Товара= Продажи.Товар
WHEREКлиенты.Город = ’Москва’
В результате будет выведен список товаров, которые приобретали клиенты из Москвы. Но не исключено, что эти же товары приобретали и клиенты из других городов.
Пример 9. Выдать список товаров, которые покупали только клиенты из Москвы, и никто другой.
Товары.Название_товара, Клиенты. Фамилия
Товары INNER JOIN
(Клиенты INNER JOINПродажиON Клиенты.ID_Клиента = Продажи.Клиент ) ONТовары. ID_Товара= Продажи.Товар
(SELECTТовары, название
(Клиенты INNER JOINПродажи ONКлиенты.ID_клиента = Продажи.Клиент)
ON Товары.ID_товара = Продажи.Товар
WHERE Клиенты.Город < > ’Москва’)
Пример 10. Определить, какие товары ни разу не покупали клиенты из Москвы.
SELECT DISTINCTТовары.Название_товара, Клиенты. Фамилия
Товары INNER JOIN
(Клиенты INNER JOINПродажиON Клиенты.ID_Клиента = Продажи.Клиент ) ONТовары. ID_Товара= Продажи.Товар
(SELECTТовары, название_товара FROM Товары INNER JOIN
(Клиенты INNER JOINПродажи ONКлиенты.ID_клиента = Продажи.Клиент)
ON Товары.ID_товара = Продажи.Товар
WHERE Клиенты.Город = ’Москва’)
Здесь во вложенном запросе определяется список товаров, приобретенных клиентами из Москвы. Во внешнем запросе выбираются только те товары, которые не входят в этот список.
Пример 11. Определить клиентов, покупавших товары российского производства.
SELECT DISTINCTКлиенты.Название_фирмы, Клиенты. Город, Товар.Страна_производитель
Товары INNER JOIN
(Клиенты INNER JOINПродажиON Клиенты.ID_Клиента = Продажи.Клиент ) ONТовары. ID_Товара= Продажи.Товар
WHEREТовары.Страна_прозводитель = ‘Россия’
Этот запрос не исключает наличие у клиента покупок и других стран-прозводителей.
Введем в запрос фразу «только» и сразу потребуется оператор NOT IN.
Пример 12. Определить фирмы, покупающие товары только российского производства.
SELECT DISTINCTКлиенты.Название_фирмы, Клиенты. Город, Товар.Страна_производитель
Товары INNER JOIN
(Клиенты INNER JOINПродажиON Клиенты.ID_Клиента = Продажи.Клиент ) ONТовары. ID_Товара= Продажи.Товар
(SELECT DISTINCTТовары.Страна_производитель