..


Рекламные ссылки

Противоположность INNER JOIN или получить записи не совпадают

Статья, написанная Максом Босси

Кто знает, что знание SQL является JOIN. В наших гидов и других статьях мы объяснили, как JOIN и как вы можете создать связи между различными таблицами в базе данных.

Наиболее распространенными требованию удовлетворяют инструмент JOIN, чтобы найти спички между двумя таблицами, в этом случае спасает INNER JOIN положение, которое точно находит и возвращает полей, удовлетворяющих переписка искали в течение двух или более таблиц, участвующих в JOIN.

Гораздо менее интуитивное об обратном необходимо определить поля, которые не имеют матч в рамках JOIN.

Давайте возьмем пример.
Предположим, вы хотите управлять базой данных электронной коммерции состоит только из двух таблиц:

  • клиентов (содержащий основные данные клиента)
  • заказы (содержащие заказов, сделанных клиентами)
Теперь предположим, что вы хотите извлечь два разных списка клиентов: 1) список клиентов, которые уже разместили заказ, 2) список клиентов, кто еще не купил что-нибудь.

Чтобы удовлетворить первое требование, конечно, довольно прост:

 



 ВЫБОР CUSTOMER.FIRST, CUSTOMER.LAST







 От клиентов







 INNER JOIN Заказы







 ВКЛ = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
и до сих пор не проблема.

Но как мы можем сделать, чтобы обратный результат? Ну ... Во-первых, не используйте INNER JOIN, но LEFT JOIN, чтобы найти полное соответствие, но не частичной, где, однако, результаты из левой таблицы будут возвращены в любом случае.
Без этого мы будем искать (с помощью предложения WHERE) записи отсутствуют (т.е. не приводится в докладе), то определены как NULL (в SQL NULL определяется как своего рода "особое значение", которая идентифицирует отсутствие значения ..)

Давайте посмотрим, код:

 



 ВЫБОР CUSTOMER.FIRST, CUSTOMER.LAST







 От клиентов







 LEFT JOIN Заказы







 ВКЛ = clienti.id ordini.id_cliente







 ГДЕ NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Результат, по сути, список имен наших клиентов, которые никогда не покупали ничего.

В той же категории ...
E-Learning
MS Access (хороший) MS Access (хороший)
Узнайте, как создавать и управлять базами данных быстро и легко. Начиная от 29 €.
MySQL (курс) MySQL (курс)
Управление с открытым исходным кодом базы данных. С 39 €.
SQL и базы данных (курс) SQL и базы данных (курс)
Создание и управление реляционными базами данных. С 39 €.
Рекламные ссылки