Перегляд об'єднаних результатів декількох запитів за допомогою запиту на об'єднання

Примітка: Вміст в цій статті призначена для баз даних Access на комп'ютері. Не можна створювати або за допомогою запиту в веб-бази даних Access або веб-додатки Access.

Ось що потрібно знати про створення запиту на об'єднання:

У запитів на вибірку, що об'єднуються в запиті не об'єднання, повинні бути однакові кількість і порядок вихідних полів з однаковими або сумісними типами даних. При виконанні запиту на об'єднання дані з кожного набору відповідних полів об'єднуються в один вихідний поле, тому у вихідних даних запиту стільки ж полів, скільки і в кожній інструкції SELECT.

Запит на об'єднання є SQL-запитом і повинен бути написаний безпосередньо на мові SQL. Для написання SQL-запитів, включаючи запити на об'єднання, потрібно переключитися на режим SQL.

Дія 1. Створення запиту на вибірку

Примітка: Хоча в запит на вибірку можна включити кілька таблиць або запитів, в цій процедурі мається на увазі, що в запити на вибірку включаються дані тільки з однієї таблиці.

На вкладці Створення в групі Запити натисніть кнопку Конструктор запитів.

У діалоговому вікні Додавання таблиці двічі клацніть таблицю, поля якої потрібно включити. Таблиця буде додано до меню конструктора запитів.

Закрийте діалогове вікно Додавання таблиці.

У вікні конструктора запитів двічі клацніть поля, які потрібно включити.
При виборі полів переконайтеся, що додається таке ж число полів і в такому ж порядку, як при додаванні в інші запити на вибірку. Приділіть особливу увагу типам даних полів, і переконайтеся, що вони сумісні з типами даних полів в таких же положеннях в інших об'єднуються запитах. Наприклад, якщо спочатку був обраний запит з п'ятьма полями, перше з яких містить дату і час, переконайтеся, щоб в інших об'єднуються запитах на вибірку також було по п'ять полів, перше з яких містить дату і час, і т. Д.

При бажанні можна додати умови в поля, ввівши відповідні вирази в рядку умови сітки поля.

Після додавання полів і умови відбору полів необхідно виконати запит на вибірку і перевірте його висновок. На вкладці "Конструктор" в групі Результати натисніть кнопку виконати.

Переведіть запит в конструктор.

Збережіть запит на вибірку і не закривайте його.

Повторіть цю процедуру для всіх запитів на вибірку, які необхідно об'єднати.

Дія 2. Об'єднання запитів на вибірку

У цьому кроці ви створюєте запит на об'єднання, за допомогою інструкцій SQL. (Для отримання додаткових відомостей зверніться до розділу синтаксис SQL під.)

На вкладці Створення в групі Запити натисніть кнопку Конструктор запитів.

Закрийте діалогове вікно Додавання таблиці.

На вкладці Конструктор у групі Запит натисніть кнопку Об'єднання.

В Access ховається вікно конструктора запитів і відображається вкладка об'єкта режиму SQL. На даному етапі ця вкладка буде порожня.

Клацніть вкладку першого запиту на вибірку, який необхідно додати в запит на об'єднання.

На вкладці "Головна" виберіть Вид> Режим SQL.

Скопіюйте посібник SQL для запиту на вибірку. Клацніть вкладку запиту на об'єднання, який ви почали створювати в дії 1.

Вставте інструкцію SQL для запиту на вибірку на вкладку об'єкта в режимі SQL.

Видаліть крапку з комою (;) в кінці інструкції SQL для запиту на вибірку.

Натисніть клавішу Enter, щоб перемістити курсор вниз на один рядок, а потім введіть в новому рядку слово UNION.

Клацніть вкладку наступного запиту на вибірку, який необхідно додати в запит на об'єднання.

Повторіть дії 5-10, поки не будуть скопійовані і вставлені всі інструкції SQL для запитів на вибірку у вікні режиму SQL запиту на об'єднання. Не знімайте крапку з комою і не вводьте нічого після інструкції SQL в останньому запиті на вибірку.

На вкладці Конструктор у групі Результати натисніть кнопку Виконати.

Результати запиту на об'єднання відобразяться в режим таблиці.

Поради щодо використання запитів на об'єднання

Якщо необхідно визначити, які рядки отримані з якої таблиці, можна додати в кожну з інструкцій вибірки додаткову текстову рядок як поле.

Наприклад, якщо одна інструкція вибірки витягує поля з таблиці "Товари", а інші інструкції вибірки - поля з таблиці "Послуги", можна додати в кінці першої інструкції рядок "Товар", а в кінці другої інструкції - рядок "Послуга". Крім того, ви можете привласнити рядках псевдонім поля (наприклад, "тип") за допомогою ключового слова AS, як показано в прикладі нижче.

SELECT field1, field2. "Product" AS type

SELECT field1, field2. "Service" AS type

У вихідні дані запиту буде включено поле "тип", в якому буде відображатися ім'я таблиці, з якої вилучено рядок.

Кожне ключове слово UNION об'єднує інструкції SELECT безпосередньо до і після нього. Якщо використовувати в запиті ключове слово ALL з деякими ключовими словами UNION, але не з іншими, в результат будуть включені повторювані рядки з пар інструкцій SELECT, об'єднаних за допомогою UNION ALL, але не будуть включені повторювані рядки з інструкцій SELECT, об'єднаних за допомогою UNION без ключового слова ALL.

Кількість, типи даних і порядок полів в запитах на вибірку, що об'єднуються в запиті на об'єднання, повинні відповідати один одному. Щоб забезпечити відповідність, можна використовувати такі вирази, як розрахунки або підзапити.

Наприклад, можна зіставити поле двозначного року з полем чотиризначного року за допомогою функції Right. щоб витягти останні дві цифри чотиризначного року.

Використання результатів запиту на об'єднання для створення нової таблиці

По-перше, використовувати запит на об'єднання в якості вхідних даних для нового запиту і використовувати цей запит select як основу для запиту на створення таблиці, як показано в такий спосіб:

Створіть і збережіть запит на об'єднання.

На вкладці Створення в групі Запити натисніть кнопку Конструктор запитів.

У діалоговому вікні Додавання таблиці відкрийте вкладку Таблиця.

Двічі клацніть запит на об'єднання і закрийте діалогове вікно Додавання таблиці.

Примітка: Якщо на панелі повідомлень відобразиться попередження системи безпеки, запити на зміну можуть бути відключені. Щоб включити їх, натисніть на панелі повідомлень кнопку Включити вміст.

У бланку запиту на вкладці запиту на об'єднання двічі клацніть зірочку (*), щоб використовувати всі поля запиту на об'єднання для створення нової таблиці.

На вкладці Конструктор у групі Тип запиту натисніть кнопку Створення таблиці.

У діалоговому вікні Створення таблиці введіть ім'я нової таблиці.

Додатково можна вказати іншу баз даних, в якій потрібно створити таблицю.

Натисніть кнопку ОК.

На вкладці Конструктор у групі Результати натисніть кнопку Виконати.

Використання запиту на об'єднання для повного зовнішнього об'єднання

Запит на об'єднання можна використовувати для виконання повного зовнішнє з'єднання. При такому об'єднанні рядки, які повертаються з будь-якої з об'єднаних таблиць, не обмежуються, але об'єднання рядків виконується на основі значень в поле об'єднання.

Створіть запит з лівим зовнішнім об'єднанням в поле, яке потрібно використовувати для повного зовнішнього об'єднання.

На вкладці Основне у групі Подання натисніть кнопку Подання та виберіть пункт Режим SQL.

Натисніть клавіші CTRL + C, щоб скопіювати код SQL.

Видаліть крапку з комою в кінці речення FROM і натисніть клавішу ENTER.

Введіть слово UNION і натисніть клавішу ENTER.

Примітка: Не використовуйте ключове слово ALL, якщо запит на об'єднання використовується для повного зовнішнього об'єднання.

Натисніть клавіші CTRL + V, щоб вставити код SQL, скопійований на кроці 3.

У вставленому коді замініть оператор LEFT JOIN на RIGHT JOIN.

Видаліть крапку з комою в кінці другого речення FROM і натисніть клавішу ENTER.

Додайте пропозицію WHERE, яке вказує, що в першій таблиці, перерахованої в реченні FROM (таблиця зліва), значенням поля об'єднання є NULL.

Наприклад, якщо пропозиція FROM виглядає наступним чином:

Додайте наступну пропозицію WHERE:

WHERE Products.ID IS NULL

Введіть крапку з комою (;) в кінці речення WHERE, щоб вказати кінець запиту на об'єднання.

На вкладці Конструктор у группеРезультати натисніть кнопку Виконати.
Результати запиту на об'єднання будуть відображені в режим таблиці.

Вимоги і синтаксис SQL для запиту на об'єднання

Вимоги до запиту на об'єднання

У запитів на вибірку, що об'єднуються в запит на об'єднання, повинні бути однакові кількість і порядок вихідних полів з однаковими або сумісними типами даних. При виконанні запиту на об'єднання дані з кожного набору відповідних полів об'єднуються в один вихідний поле, тому у вихідних даних запиту стільки ж полів, скільки і в кожній інструкції SELECT.

Примітка: У запитах на об'єднання числовий і текстовий типи даних є сумісними.

Запит на об'єднання є SQL-запитом і повинен бути написаний безпосередньо на мові SQL. Для написання SQL-запитів, включаючи запити на об'єднання, потрібно переключитися на Режим SQL.

Синтаксис SQL в запиті на об'єднання

У запиті на об'єднання кожен запит на вибірку (або інструкція SELECT) містить наступні пропозиції: