Примітка: Вміст в цій статті призначена для баз даних 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) містить наступні пропозиції: