Це одна із серії статей про Access SQL. У цій статті описано, як написати речення FROM, а також наведено приклади різних методів, які можна використовувати в реченні FROM.
В операторі SELECT можна вказати джерела даних у реченні FROM. Речення FROM також може містити операцію JOIN. Операція JOIN використовується, щоб зіставити й поєднати дані з двох джерел даних, наприклад двох таблиць або таблиці й запиту.
Огляд Access SQL див. в статті Access SQL: основні поняття, словник і синтаксис.
У цій статті
Визначення джерел даних
В операторі SELECT речення FROM визначає таблиці та запити з даними, які використовуватимуться в реченні SELECT.
Припустімо, вам потрібно дізнатися номер телефону певного клієнта. Якщо таблиця з полем, у якому зберігаються ці дані, називається tblCustomer, речення FROM матиме такий вигляд:
FROM tblCustomer
Ви можете взяти ім’я у квадратні дужки. Якщо ім’я не містить пробілів і спеціальних символів (наприклад, розділових знаків), квадратні дужки необов’язкові. Якщо ім’я містить пробіли або спеціальні символи, необхідно використовувати дужки.
Порада.: Ім’я, яке містить пробіли, легше читати, і воно може заощадити час під час створення форм і звітів, але може бути так, що вам доведеться вводити більше під час написання SQL-операторів. Слід враховувати це, називаючи об’єкти в базі даних Access.
Використання імен-замінників для джерел даних
Ви можете використати інше ім’я для посилання на таблицю в операторі SELECT, взявши псевдонім таблиці в реченні FROM. Псевдонім таблиці – це ім’я, яке ви призначаєте джерелу даних у запиті, коли використовуєте вираз як джерело даних або щоб полегшити ввід і читання SQL-оператора. Це може бути особливо корисно, якщо ім’я джерела даних задовге або його складно вводити, особливо коли є кілька полів з однаковим іменем із різних таблиць.
Наприклад, якщо вам потрібно вибрати дані з двох полів з однаковим іменем ID, одне з яких походить із таблиці tblCustomer, а інше – з таблиці tblOrder, речення SELECT може мати такий вигляд:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Використовуючи псевдоніми таблиці в реченні FROM, можна спростити ввід запиту. Речення FROM із псевдонімами таблиці може мати такий вигляд:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Надалі ці псевдоніми таблиць можна використовувати в реченні SELECT, як показано нижче:
SELECT [C].[ID], [O].[ID]
Примітка.: Коли використовується псевдонім таблиці, ви можете посилатися на таблицю в SQL-операторі за допомогою псевдоніма або повного імені таблиці.
Об’єднання пов’язаних даних
Якщо вам потрібно поєднати пари записів із двох джерел даних в окремі записи в результаті запиту, можна виконати об’єднання. Об’єднання – це операція SQL, яка вказує, як два джерела даних пов’язано між собою та чи потрібно включати дані з одного джерела, коли для них немає відповідних даних в іншому джерелі.
Щоб поєднати відомості із двох джерел даних, виконайте операцію об’єднання в спільному полі. Після зіставлення значень, що зберігаються в цьому полі, дані із записів поєднуються в результатах.
Крім поєднання даних, за допомогою операції об’єднання також можна вказати, чи потрібно включати записи з певної таблиці, коли для них немає відповідних записів у пов’язаній таблиці.
Наприклад, ви хочете використати в запиті дані з двох таблиць: tblCustomer і tblOrder. В обох таблицях є поле CustomerID, яке визначає клієнта. Кожен запис у таблиці tblCustomer може мати один або кілька відповідних записів у таблиці tblOrder, і відповідні значення можна визначити за значеннями в полі CustomerID.
Якщо ви хочете об’єднати таблиці, щоб запит поєднував записи з таблиць, за винятком записів із будь-якої таблиці, коли для них немає відповідних записів в іншій таблиці, речення FROM може мати такий вигляд (розрив рядка додано для зручності читання):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
У програмі Access операції об’єднання виконуються в реченні FROM оператора SELECT. Є два типи об’єднань: внутрішні та зовнішні. Ці два типи об’єднань описано в наведених нижче розділах.
Внутрішні об’єднання
Внутрішні об’єднання – це найпоширеніший тип об’єднання. Коли виконується запит із внутрішнім об’єднанням, у результати запиту включаються лише ті записи, спільне значення яких є в обох об’єднуваних таблицях.
Внутрішнє об’єднання має такий синтаксис (розрив рядка додано для зручності читання):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
У наведеній нижче таблиці описано різні частини операції INNER JOIN.
Частина |
Опис |
таблиця1, таблиця2 |
Імена таблиць, записи яких буде об’єднано. |
поле1, поле2 |
Імена об’єднаних полів. Якщо поля не числові, вони повинні мати однаковий тип даних, але не повинні мати однакові імена. |
compopr |
Будь-який реляційний оператор порівняння: "=", "<", ">", "<=", ">=" або "<>" |
Зовнішні об’єднання
Зовнішні об’єднання схожі на внутрішні, тому що вони визначають, як запит буде поєднувати відомості з двох джерел. Різниця полягає в тому, що вони також визначають, чи потрібно включати дані, у яких немає спільного значення. Зовнішні об’єднання спрямовані: ви можете вказати, чи включати всі записи з першого джерела даних, зазначеного в операції об’єднання (так зване "ліве об’єднання"), або з другого джерела даних в операції об’єднання (так зване "праве об’єднання").
Зовнішнє об’єднання має такий синтаксис:
FROM таблиця1 [ LEFT | RIGHT ] JOIN таблиця2
ON таблиця1.поле1 compopr таблиця2.поле2У наведеній нижче таблиці описано різні частини операцій LEFT JOIN і RIGHT JOIN.
Частина |
Опис |
таблиця1, таблиця2 |
Імена таблиць, записи яких буде об’єднано. |
поле1, поле2 |
Імена об’єднаних полів. Поля повинні мати однаковий тип даних, але не повинні мати однакових імен. |
compopr |
Будь-який реляційний оператор порівняння: "=", "<", ">", "<=", ">=" або "<>" |
Докладні відомості про об’єднання див. в статті Об’єднання таблиць і запитів.