FROM Товары INNER JOIN

WHEREТовары.Название NOT IN

FROM

FROM Товары INNER JOIN

WHEREТовары.Название NOT IN

FROM

SELECT DISTINCT

FROM

SELECT DISTINCT

SELECT Название_категории FROM Категории

WHERE Категория IN

SELECT

Примеры с использованием операций IN и NOT IN

ОператорIN используется для сравнения некоторого значения со списком значений. При этом проверяется, входит ли значение в предлагаемый список.

Пример 7. Выдать список товаров, относящихся к категории «Молочные продукты».

Название_товара

FROM Товары

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ПродажиON Клиенты.ID_Клиента = Продажи.Клиент ) ONТовары. ID_Товара= Продажи.Товар

 

WHEREТовары.Страна_прозводитель = ‘Россия’

 

Этот запрос не исключает наличие у клиента покупок и других стран-прозводителей.

Введем в запрос фразу «только» и сразу потребуется оператор NOT IN.

Пример 12. Определить фирмы, покупающие товары только российского производства.

SELECT DISTINCTКлиенты.Название_фирмы, Клиенты. Город, Товар.Страна_производитель