Створення запиту на основі декількох таблиць - Access
Іноді процес побудови та використання запитів у програмі Access - це просто питання вибору полів із таблиці, можливо, застосування деяких критеріїв, а потім перегляду результатів. Але що, якщо, як це буває частіше, потрібні вам дані поширюються в декількох таблицях? На щастя, ви можете створити запит, який поєднує інформацію з кількох джерел. У цій темі розглядаються деякі сценарії, коли ви отримуєте дані з кількох таблиць, і демонструє, як ви це робите.

Що ти хочеш робити?
Використовуйте дані з відповідної таблиці, щоб покращити інформацію у вашому запиті
Можливо, трапляються випадки, коли запит, який базується на одній таблиці, дає вам потрібну інформацію, але витягування даних з іншої таблиці допомогло б зробити результати запиту ще чіткішими та кориснішими. Наприклад, припустимо, у вас є список ідентифікаторів співробітників, які відображаються в результатах вашого запиту. Ви розумієте, що корисніше було б переглядати ім’я співробітника в результатах, але імена працівників містяться в іншій таблиці. Щоб імена співробітників відображались у результатах вашого запиту, вам потрібно включити обидві таблиці у ваш запит.
За допомогою майстра запитів створіть запит із первинної та пов’язаної таблиці
Переконайтеся, що таблиці мають певний зв’язок у вікні Відносини.
На Інструментах баз даних на вкладці Показати/Приховати групу, клацніть Відносини.
Про дизайн на вкладці "Відносини" групі, натисніть Усі відносини.
Визначте таблиці, які повинні мати певний зв’язок.
Якщо таблиці видно у вікні Відносини, перевірте, чи стосунки вже визначені.
Зв'язок виглядає як лінія, що з'єднує дві таблиці в загальному полі. Ви можете двічі клацнути лінію зв’язку, щоб побачити, які поля в таблицях пов’язані зв’язком.
Якщо таблиці не видно у вікні Відносини, їх потрібно додати.
Про дизайн на вкладці Показати/Приховати групи, натисніть Імена таблиць.
Двічі клацніть кожну таблицю, яку потрібно показати, а потім натисніть кнопку Закрити.
Якщо ви не знайшли зв'язку між двома таблицями, створіть одну, перетягнувши поле з однієї з таблиць у поле іншої таблиці. Поля, на яких ви створюєте зв'язок між таблицями, повинні мати однакові типи даних.
Примітка: Ви можете створити взаємозв'язок між полем, що має тип даних AutoNumber, і полем, що має тип даних Number, якщо це поле має довгий цілий розмір поля. Це часто трапляється у випадках, коли ви створюєте стосунки «один до багатьох».
Редагувати відносини з'явиться діалогове вікно.
Натисніть Створити щоб створити стосунки.
Для отримання додаткової інформації про параметри, які ви маєте під час створення відносин, див. Статтю Створення, редагування або видалення відносин.
Закрийте вікно Відносини.
На Створити на вкладці Запити групу, натисніть Майстер запитів.
У Новому запиті діалоговому вікні клацніть Майстер простих запитів, а потім натисніть кнопку OK.
У таблицях/запитах клацніть таблицю, яка містить основну інформацію, яку ви хочете включити у свій запит.
У доступних полях списку, клацніть перше поле, яке ви хочете включити у свій запит, а потім клацніть одну стрілку вправо, щоб перемістити це поле до вибраних полів список. Зробіть те ж саме з кожним додатковим полем із цієї таблиці, яке ви хочете включити у свій запит. Це можуть бути поля, які потрібно повернути у вихідному запиті, або поля, які потрібно використовувати для обмеження рядків у вихідних даних, застосовуючи критерії.
У таблицях/запитах клацніть таблицю, що містить відповідні дані, які ви хочете використовувати для покращення результатів запиту.
Додайте поля, які ви хочете використовувати для покращення результатів запиту, до Вибраних полів і натисніть Далі.
У розділі Хочете отримати детальний або зведений запит?, клацніть або Детально або Підсумок.
Якщо ви не хочете, щоб ваш запит виконував будь-які сукупні функції (Сум, Сер, Хв, Макс, Рахувати, СтДев, або Var), виберіть деталізований запит. Якщо ви хочете, щоб ваш запит виконував сукупну функцію, виберіть підсумковий запит. Зробивши вибір, натисніть Далі.
Клацніть Готово для перегляду результатів.
Приклад, що використовує базу даних зразка Northwind
У наступному прикладі за допомогою майстра запитів ви створюєте запит, який відображає список замовлень, вартість доставки за кожне замовлення та ім’я працівника, який обробляв кожне замовлення.
Примітка: Цей приклад передбачає модифікацію бази даних Northwind. Можливо, ви захочете зробити резервну копію зразка бази даних Northwind, а потім скористайтеся цим прикладом, використовуючи цю резервну копію.
Для побудови запиту використовуйте майстер запитів
Відкрийте базу даних Northwind. Закрийте форму для входу.
На Створити на вкладці Запити групу, натисніть Майстер запитів.
У Новому запиті діалоговому вікні клацніть Майстер простих запитів, а потім натисніть кнопку OK.
У таблицях/запитах у списку клацніть Таблиця: Замовлення.
У доступних полях списку, двічі клацніть OrderID щоб перемістити це поле до Вибраних полів список. Двічі клацніть Плата за доставку щоб перемістити це поле до Вибраних полів список.
У таблицях/запитах у списку клацніть Таблиця: Співробітники.
У доступних полях списку, двічі клацніть Ім'я щоб перемістити це поле до Вибраних полів список. Двічі клацніть Прізвище щоб перемістити це поле до Вибраних полів список. Натисніть Далі.
Оскільки ви створюєте список усіх замовлень, ви хочете використовувати детальний запит. Якщо ви підсумовуєте плату за доставку працівником або виконуєте якусь іншу сукупну функцію, ви використовуєте підсумковий запит. Клацніть Детально (відображається кожне поле кожного запису), а потім натисніть Далі.
Клацніть Готово для перегляду результатів.
Запит повертає список замовлень, кожен із яких має плату за доставку та ім’я та прізвище працівника, який його обробляв.
З’єднайте дані у дві таблиці, використовуючи їхні зв’язки з третьою таблицею
Часто дані у двох таблицях пов’язані між собою через третю таблицю. Зазвичай це трапляється, оскільки дані між першими двома таблицями пов’язані у взаємозв’язку «багато-до-багатьох». Часто вдалою практикою проектування баз даних є розділення взаємозв'язку "багато-до-багатьох" між двома таблицями на два відносини "один до багатьох", що включають три таблиці. Ви робите це, створюючи третю таблицю, яка називається таблицею з'єднань або таблицею зв'язків, яка має первинний ключ та зовнішній ключ для кожної з інших таблиць. Потім між кожним зовнішнім ключем у таблиці з'єднань та відповідним первинним ключем однієї з інших таблиць створюється зв'язок "один до багатьох". У таких випадках вам потрібно включити до запиту всі три таблиці, навіть якщо ви хочете отримати дані лише з двох з них.