Applies ToAccess dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Niniejszy artykuł pochodzi z zestawu artykułów dotyczących języka Access SQL. Omówiono w nim, jak napisać klauzulę FROM, a także na przykładach przedstawiono różne techniki, których można używać w klauzuli FROM.

W instrukcji SELECT źródła danych są określane w klauzuli FROM. Klauzula FROM może również zawierać operację JOIN. Operacja JOIN jest używana w celu dopasowywania i łączenia danych pochodzących z dwóch źródeł danych, takich jak dwie tabele lub tabela i zapytanie.

Aby zapoznać się z omówieniem języka Access SQL, zobacz artykuł Język Access SQL: podstawowe pojęcia, słownictwo i składnia.

W tym artykule

Określanie źródeł danych

W instrukcji SELECT klauzula FROM określa tabele lub zapytania zawierające dane, które mają zostać użyte przez instrukcję SELECT.

Na przykład jest potrzebny numer telefonu konkretnego klienta. Przy założeniu, że tabela zawierająca pole, w którym są przechowywane te dane, nosi nazwę tblCustomer, klauzula FROM będzie przypominała następującą:

FROM tblCustomer

Nazwę można ująć w nawiasy kwadratowe. Jeśli nazwa nie zawiera żadnych spacji ani znaków specjalnych (takich jak znaki interpunkcyjne), nawiasy kwadratowe są opcjonalne. Jeśli w nazwie znajdują się spacje lub znaki specjalne, zastosowanie nawiasów jest konieczne.

Porada: Nazwa zawierająca spacje jest łatwiejsza do odczytania i pozwala zaoszczędzić czas podczas projektowania formularzy i raportów, ale może spowodować, że będziesz wpisywać więcej podczas pisania instrukcji SQL. Należy wziąć pod uwagę ten fakt podczas nazywania obiektów w bazie danych programu Access.

Używanie nazw zastępczych dla źródeł danych

Odwołując się do tabeli w instrukcji SELECT, można używać innej nazwy, stosując w tym celu alias tabeli w klauzuli FROM. Alias tabeli to nazwa przypisywana do źródła danych w zapytaniu, gdy jako źródło danych jest używane wyrażenie albo zachodzi potrzeba ułatwienia wpisywania i odczytywania instrukcji SQL. Może to być szczególnie użyteczne, jeśli nazwa źródła danych jest długa i trudna do wpisania, szczególnie gdy występuje w niej wiele pól o takich samych nazwach, ale pochodzących z różnych tabel.

Jeśli na przykład trzeba wybrać dane z dwóch różnych pól o nazwie ID, z których jedno pochodzi z tabeli tblCustomer, a drugie z tabeli tblOrder, klauzula SELECT może przypominać następującą:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Używając aliasów tabel w klauzuli FROM, można ułatwić wpisywanie zapytania. Klauzula FROM z aliasami tabel może przypominać następującą:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Tych aliasów tabel możesz użyć w klauzuli SELECT w następujący sposób:

SELECT [C].[ID], [O].[ID]

Uwaga: Gdy jest używany alias tabeli, można odwołać się do tabeli w instrukcji SQL, używając aliasu lub pełnej nazwy tabeli.

Sprzęganie danych pokrewnych

Gdy zachodzi potrzeba połączenia par rekordów z dwóch źródeł danych w pojedyncze rekordy w wynikach zapytania, można wykonać sprzężenie. Sprzężenie to operacja SQL określająca, w jaki sposób dwa źródła danych są powiązane i czy dane z jednego źródła powinny być uwzględniane, jeśli odpowiadające im dane nie występują w drugim źródle.

Aby połączyć informacje z dwóch źródeł danych, należy wykonać operację sprzężenia na polu, które jest dla nich wspólne. Jeśli wartości przechowywane w tym polu są zgodne, dane z rekordów są łączone w wynikach.

Oprócz łączenia danych, sprzężenia można również używać do określania, czy mają być uwzględniane rekordy z którejkolwiek tabeli, jeśli odpowiadający im rekord nie występuje w tabeli pokrewnej.

Na przykład w zapytaniu mają zostać użyte dane pochodzące z dwóch tabel: tblCustomer i tblOrder. W obu tabelach występuje pole CustomerID, które identyfikuje klienta. Każdemu rekordowi z tabeli tblCustomer może odpowiadać jeden lub więcej rekordów w tabeli tblOrder, a odpowiadające wartości można ustalić przy użyciu wartości z pola CustomerID.

Jeśli tabele mają zostać sprzężone tak, aby zapytanie połączyło ich rekordy, wykluczając rekordy z dowolnej tabeli, o ile w drugiej tabeli nie istnieją rekordy im odpowiadające, klauzula FROM może przypominać następującą (w celu zwiększenia czytelności dodano tutaj podział wiersza):

FROM [tblCustomer] INNER JOIN [tblOrder] ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

W programie Access sprzężenia występują w klauzuli FROM instrukcji SELECT. Istnieją dwa typy sprzężeń: sprzężenia wewnętrzne i sprzężenia zewnętrzne. W następnych sekcjach wyjaśniono te dwa typy sprzężeń.

Sprzężenia wewnętrzne

Sprzężenia wewnętrzne to najpopularniejszy typ sprzężenia. Po uruchomieniu zapytania ze sprzężeniem wewnętrznym jedynymi rekordami uwzględnionymi w wynikach zapytania są te rekordy, w przypadku których istnieje wspólna wartość w obu sprzężonych tabelach.

Sprzężenie wewnętrzne ma następującą składnię (w celu zwiększenia czytelności dodano tutaj podział wiersza):

FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2

W poniższej tabeli opisano poszczególne części operacji INNER JOIN.

Segment

Opis

tabela1, tabela2

Nazwy tabel, z których pochodzą łączone rekordy.

pole1, pole2

Nazwy sprzęganych pól. Jeśli nie są to pola numeryczne, muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale mogą mieć inne nazwy.

operator_porównania

Dowolny relacyjny operator porównania: „=”, „<”, „>”, „<=”, „>=”, lub „<>”.

Sprzężenia zewnętrzne

Sprzężenia zewnętrzne są podobne do sprzężeń wewnętrznych — przekazują do zapytania instrukcje, jak powinny być łączone informacje pochodzące z dwóch źródeł. Różnica polega na tym, że określają one również, czy dane mają być uwzględniane w przypadkach, gdy nie istnieje wspólna wartość. Sprzężenia zewnętrzne są kierunkowe: można określić, czy uwzględniane mają być wszystkie rekordy z pierwszego źródła danych określonego w sprzężeniu (nazywanego lewym sprzężeniem), czy też uwzględniane mają być wszystkie rekordy z drugiego źródła danych w sprzężeniu (nazywanego prawym sprzężeniem).

Sprzężenie zewnętrzne ma następującą składnię:

FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2ON tabela1.pole1 operator_porównania tabela2.pole2

W poniższej tabeli opisano poszczególne części operacji LEFT JOIN i RIGHT JOIN.

Segment

Opis

tabela1, tabela2

Nazwy tabel, z których pochodzą łączone rekordy.

pole1, pole2

Nazwy sprzęganych pól. Pola muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale mogą mieć inne nazwy.

operator_porównania

Dowolny relacyjny operator porównania: „=”, „<”, „>”, „<=”, „>=”, lub „<>”.

Aby uzyskać więcej informacji na temat sprzężeń, zobacz artykuł Sprzęganie tabel i zapytań.

Początek strony

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.