В Access есть еще один очень полезный мастер — мастер поиска несопоставленных запросов . Мастер поиска несоответствующих запросов создает запрос, который находит записи или строки в одной таблице, которые не имеют связанных записей в другой таблице.
Как мы уже обсуждали, как данные объединяются в запросах и как большинство запросов ищет совпадения между двумя или более таблицами.
-
Это соединение по умолчанию в Access, например, если мы разработаем запрос с двумя таблицами tblCustomers и tblOrders и соединим эти две таблицы с помощью идентификаторов CustomerID, этот запрос будет возвращать только совпадающие результаты. Другими словами, клиенты, которые разместили заказы.
-
Временами мы не хотим видеть совпадения, например, мы можем не захотеть видеть ни одного клиента в нашей базе данных — клиентов, которые еще не разместили заказы.
Это соединение по умолчанию в Access, например, если мы разработаем запрос с двумя таблицами tblCustomers и tblOrders и соединим эти две таблицы с помощью идентификаторов CustomerID, этот запрос будет возвращать только совпадающие результаты. Другими словами, клиенты, которые разместили заказы.
Временами мы не хотим видеть совпадения, например, мы можем не захотеть видеть ни одного клиента в нашей базе данных — клиентов, которые еще не разместили заказы.
- Это именно то, что делает поиск несопоставимого.
Существует также много других возможных применений для этого вида запроса.
В нашей базе данных мы можем использовать его, чтобы увидеть, какие авторы еще не написали проект, или вы можете использовать его, чтобы узнать, какие сотрудники еще не выбрали какую-либо пользу для здоровья. Давайте теперь откроем вашу базу данных, которая содержит таблицу клиентов и заказов ; перейдите на вкладку «Создать» и нажмите кнопку мастера запросов.
Выберите Мастер поиска несопоставленных запросов и нажмите ОК .
В этом сценарии мы будем следить за теми клиентами, которые не разместили заказ. На первом экране спрашивается, какая таблица или запрос содержит записи, которые вы хотите в результатах запроса.
Теперь мы хотим список клиентов от tblCustomers . Выберите эту опцию и нажмите Далее .
На следующем экране необходимо указать, какая таблица или запрос содержит связанные записи . Другими словами, какую таблицу вы используете для сравнения с первой. Для этого нам нужно найти те, которые не разместили заказы. Нам нужно выбрать таблицу, которая содержит информацию обо всех заказах — tblOrders . Теперь нажмите Next .
На следующем экране вам необходимо указать, какая часть информации находится в обеих таблицах.
- Обычно это будет какой-то первичный ключ, внешний ключ, поле или отношение.
- Если у вас есть существующие отношения в вашей базе данных, Access выберет и сопоставит эти поля для вас.
- Но если у вас есть другие поля, которые вы можете объединить, содержащие аналогичную информацию, вы также можете выбрать это здесь.
Здесь у нас есть CustID, выбранный по умолчанию в обоих полях в ‘tblCustomers’ и в полях в ‘tblOrders’. Теперь нажмите Next .
На следующем экране вы можете выбрать поля, которые вы хотите видеть в результатах запроса.
Теперь давайте выберем все доступные поля и кликните на двуглавой стрелке. Это переместит все доступные поля в выбранную область полей . Теперь нажмите Next .
Последний экран позволит вам выбрать имя для вашего запроса и нажать кнопку « Готово» .
Здесь мы указали одного клиента, который еще не разместил у нас заказ.
Вы также можете увидеть, как был создан этот запрос. Для этого вам нужно вернуться в представление конструктора .
Этот мастер создал внешнее соединение между tblCustomer и tblOrders, и критерии C Null добавлены в CustID из tblORders. Это исключает определенные записи. В данном случае это клиенты, которые разместили заказы или у которых есть связанная информация в tblOrders.