Клиенты, которые не сделали заказ онлайн урок.


Рассмотрим запрос для получения клиентов, которые не сделали заказов в феврале 2004 года. Для этого, во-первых необходимо соединить столбцы таблиц заказчиков и заказов. Во-вторых, в условие пересечения необходимо добавить критерий, который соответствует февралю 2004 года. Тогда, если выбрать соединение LEFT/RIGHT JOIN, мы получим значения NULL в тех строках таблицы заказов, которые не соответствую выбранной дате:

SELECT c.id, c.name FROM customers c
LEFT JOIN orders o
ON ( o.customer_id = c.id AND month( o.date ) = '2' AND year( o.date ) = '2004' )

Далее, остается выбрать те записи, где именно неизвестные значения:

SELECT c.id, c.name, o.id FROM customers c
LEFT JOIN orders o
ON ( o.customer_id = c.id AND month( o.date ) = '2' AND year( o.date ) = '2004' )
WHERE o.id IS NULL


+-----+------------------------------------+------+
| id | name | id |
+-----+------------------------------------+------+
| 1 | Atelier graphique | NULL |
| 2 | Signal Gift Stores | NULL |
| 4 | La Rochelle Gifts | NULL |
| 5 | Baane Mini Imports | NULL |
| 6 | Mini Gifts Distributors Ltd. | NULL |
| 7 | Havel & Zbyszek Co | NULL |
| 8 | Blauer See Auto, Co. | NULL |
... ... ... ... ... ...