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

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

Увага! : Цю статтю перекладено за допомогою служби машинного перекладу; див. застереження. Версію цієї статті англійською мовою див. тут для отримання довідки.

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

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

Потрібно пригадати створення основні вибіркових запитів? Дізнайтеся, створити простий Вибірковий запит.

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

  • Вибіркові запити, на основі яких створюється запит на об’єднання, мають містити однакову кількість полів виводу, розташованих в однаковому порядку, з однаковими або сумісними типами даних. Коли ви запускаєте запит на об’єднання, дані з кожного набору відповідних полів об’єднуються в одне поле виводу, тому результат запиту містить таку ж кількість полів, як і кожен з операторів SELECT.

  • Запит на об’єднання – це запит SQL, тому його потрібно створювати мовою SQL. Запити SQL, зокрема й запити на об’єднання, створюються на вкладці "Режим SQL".

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

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

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

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

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

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

  5. За потреби до полів можна додати умови, ввівши в сітці полів у рядку Умови відповідні вирази.

  6. Додавши поля й умови полів, виконайте вибірковий запит і перегляньте його результати. На вкладці Конструктор у групі Результати клацніть команду Запустити.

  7. Відкрийте запит у режимі конструктора.

  8. Збережіть його та залиште відкритим.

  9. Повторіть ці дії для всіх вибіркових запитів, які потрібно поєднати.

Докладніше про використання умов у запиті див. у статті Застосування умови до запиту.

Крок 2. Об’єднання вибіркових запитів

У цьому кроці створіть запит на об’єднання за допомогою операторів SQL. (Докладні відомості див. нижче в розділі Синтаксис SQL.)

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

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

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

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

  1. Виберіть вкладку першого вибіркового запису, який потрібно додати до запиту на об’єднання.

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

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

  4. Вставте скопійовану SQL-інструкцію в запит на об’єднання (вкладка об’єкта в режимі SQL).

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

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

  7. Виберіть вкладку наступного вибіркового запиту, який потрібно додати до запиту на об’єднання.

  8. Повторіть кроки 5–10, доки не вставите всі SQL-інструкції вибіркових запитів у запит на об’єднання (вікно в режимі SQL). В останньому вибірковому запиті не видаляйте крапку з комою та не вводьте жодні додаткові символи після SQL-інструкції.

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

Результати запиту на об’єднання відкриються у вікно табличного подання даних.

На початок сторінки

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

  • Щоб мати змогу з’ясувати, з якої таблиці отримано той чи інший рядок, додайте текстовий рядок у вигляді поля в кожній вибраній інструкції.

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

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Результат запиту міститиме поле з ім’ям "тип", у якому відображатиметься ім’я таблиці ("Продукти" або "Послуги"), з якої походить рядок.

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

  • Нумерація, тип даних і порядок полів у вибраних запитах мають бути узгодженими. Для забезпечення узгодженості можна скористатися виразами, такими як обчислення або підзапити.

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

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

Спочатку скористайтеся запитом на об’єднання як вхідними даними для нового вибіркового запиту, а потім використайте цей вибірковий запит як основу для запиту на створення таблиці, виконавши наведені нижче кроки.

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

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

  3. У діалоговому вікні Відображення таблиці виберіть вкладку Запити.

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

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

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

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

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

  8. За потреби вкажіть іншу базу даних, щоб створити таблицю.

  9. Натисніть кнопку OK.

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

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

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

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

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

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

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

  5. Введіть ключове слово UNION і натисніть клавішу Enter.

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

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

  7. У вставленому коді замініть параметр LEFT JOIN (ліве з’єднання) на RIGHT JOIN (праве з’єднання).

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

  9. Додайте речення WHERE і вкажіть, що в першій таблиці в реченні FROM (ліва таблиця) поле з’єднання має NULL-значення.

    Наприклад, речення FROM має такий вигляд:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    У такому разі додайте таке речення WHERE:

    WHERE Products.ID IS NULL

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

  11. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
    Результати запиту на об’єднання відобразяться у вікно табличного подання даних.

Докладні відомості див. у статті Об’єднання джерел даних у запиті.

На початок сторінки

Синтаксис SQL запитів на об’єднання та вимоги до них

Деякі вимоги до запиту на об’єднання

  • Вибіркові запити, на основі яких створюється запит на об’єднання, мають містити однакову кількість полів виводу, розташованих в однаковому порядку, з однаковими або сумісними типами даних. Коли ви запускаєте запит на об’єднання, дані з кожного набору відповідних полів об’єднуються в одне поле виводу, тому результат запиту містить таку ж кількість полів, як і кожен з операторів SELECT.

    Примітка : Для запиту на об’єднання типи даних "Текст" і "Число" вважаються сумісними.

  • Запит на об’єднання – це запит SQL, тому його потрібно створювати мовою SQL. Запити SQL, зокрема й запити на об’єднання, створюються на вкладці Режим SQL.

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

У запиті на об’єднання кожен вибірковий запит, або оператор SELECT, містить зазначені нижче речення.

Речення

Список елементів

SELECT

поля, що містять дані, які потрібно отримати

FROM

таблиці, які містять ці поля

Додаткове речення WHERE

умови для цих полів

Оператори SELECT об’єднуються за допомогою ключового слова UNION.

Базовий синтаксис SQL для запиту на об’єднання, має такий вигляд:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Припустімо, в базі даних є дві таблиці: "Товари" та "Послуги", і обидві ці таблиці мають поля, у яких зазначається ім’я товару або послуги, ціна, наявність гарантії та гарантійних зобов’язань, а також інформація про ексклюзивність пропозиції. Незважаючи на те, що в таблиці "Товари" зберігається інформація про гарантії, а в таблиці "Послуги" зберігається інформація про гарантійні зобов’язання, основна інформація в цих таблицях така сама (наявність гарантії якості для певного товару або послуги). Щоб поєднати чотири поля з цих таблиць, скористайтеся запитом на об’єднання. Наведемо зразок такого запиту:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Проаналізуйте рядок за рядком синтаксис у цьому прикладі.

Синтаксис

Пояснення

Додаткові відомості

SELECT ім’я, ціна, наявність_гарантійних_зобов’язань, ексклюзивність_пропозиції

Перше речення SELECT

Після оператора SELECT іде список ідентифікаторів, що позначають поля, з яких потрібно отримати дані.

У реченні SELECT слід указувати принаймні одне поле.

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

FROM Товари

Перше речення FROM

Воно стоїть після речення SELECT, і разом вони утворюють базовий оператор SELECT.

Після оператора FROM іде список ідентифікаторів таблиць, які містять поля, перераховані в реченні SELECT.

У реченні FROM слід указувати принаймні одну таблицю.

У цьому реченні вказано ідентифікатор таблиці Товари.

UNION ALL

Ключове слово UNION і додаткове ключове слово ALL

Результати оператора SELECT, який стоїть перед словом UNION, об’єднуються з результатами оператора SELECT, який стоїть після слова UNION.

Ключове слово ALL указує на те, що повторювані рядки не видаляються з результаті об’єднання.

Використання ключового слова ALL пришвидшує виконання запиту, тому що Access не потрібно перевіряти повторювані рядки.

Ключове слово ALL слід використовувати в таких випадках:

  • ви впевнені, що вибіркові запити не створюватимуть повторювані рядки;

  • наявність повторюваних рядків у результатах допустима;

  • повторювані рядки потрібні.

SELECT ім’я, ціна, наявність_гарантії, ексклюзивність_пропозиції

Друге речення SELECT

Деякі правила

  • Друге речення SELECT має містити таку ж кількість полів, як і перше речення SELECT.

  • Поля, які спільно використовують загальні дані, мають розташовуватися в реченнях в однаковому порядку.

  • Поля, які спільно використовують загальні дані, мають містити однакові або сумісні типи даних.

Примітка : У результаті запиту назви полів підставляються з першого речення SELECT. Отже, виходячи з нашого прикладу, дані з полів "наявність_гарантійних_зобов’язань" і "наявність_гарантії" в результаті запиту будуть об’єднані в полі "наявність_гарантійних_зобов’язань".

FROM Послуги

Друге речення FROM

На таблиці, указані в реченнях FROM запиту на об’єднання, не накладаються жодні обмеження. У запиті на об’єднання в кожному реченні FROM можуть указуватись однакові таблиці. Кількість таблиць у реченнях FROM може бути різною. У нашому прикладі кожне речення FROM містить лише одну таблицю.

На початок сторінки

Примітка : Застереження про машинний переклад: Цю статтю перекладено комп’ютерною системою без втручання людини. Корпорація Майкрософт пропонує таку послугу, щоб іншомовні користувачі могли дізнаватися про продукти, служби й технології Microsoft. Оскільки статтю перекладено за допомогою служби машинного перекладу, вона може містити смислові, синтаксичні або граматичні помилки.

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×