Sprzęganie tabel i zapytań

Uwaga: Staramy się udostępniać najnowszą zawartość Pomocy w Twoim języku tak szybko, jak to możliwe. Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Prosimy o powiadomienie nas, czy te informacje były pomocne, u dołu tej strony. Oto angielskojęzyczny artykuł do wglądu.

W przypadku dołączania wielu źródeł danych w kwerendzie programu Access za pomocą sprzężeń możesz ograniczyć liczbę rekordów, które chcesz wyświetlić, na podstawie sposobu powiązania źródeł danych. Możesz również użyć sprzężeń, aby połączyć rekordy z obu źródeł danych, tak aby każda para rekordów ze źródeł była w wynikach kwerendy jednym rekordem.

W tym artykule omówiono różne typy sprzężeń i pokazano, jak ich używać w kwerendzie. Domyślnie sprzężenie jest tworzone automatycznie, jeśli istnieje już relacja między dwoma źródłami danych, które są używane w kwerendzie. Utworzono również sprzężenie, jeśli pola są wyraźnie zgodne z innymi. Możesz usunąć automatycznie utworzoną dołączenie. Ten artykuł zawiera podstawowe informacje o relacjach między tabelami, w tym ich tworzenie.

Uwaga: Możesz dołączać do zapytań w taki sam sposób, jak w przypadku dołączania do tabel, a także dołączać do nich.

W tym artykule

Omówienie

Typy sprzężeń

Wyświetlanie wierszy, w których istnieje wspólna wartość w obu sprzężonych tabelach

Pokazywanie wszystkich wierszy z jednej tabeli oraz odpowiadających im wierszy z drugiej tabeli

Wyświetlanie wszystkich wierszy z obu tabel i dołączanie do nich w przypadku istnienia wspólnej wartości

Sprzężenia krzyżowe

Sprzęganie tabel na podstawie nierówności wartości pól

Usuwanie sprzężenia

Omówienie

Baza danych jest zbiorem tabel danych, które zawierają relacje logiczne. Za pomocą relacji można łączyć tabele według wspólnych pól. Tabela może być częścią dowolnej liczby relacji, ale każda relacja zawsze ma dokładnie dwie tabele. W kwerendzie relacja jest reprezentowana przez sprzężenie.

Po dodaniu tabel do kwerendy Access tworzy sprzężenia oparte na relacjach, które zostały zdefiniowane między tabelami. Możesz ręcznie utworzyć sprzężenia w kwerendach, nawet jeśli nie zawierają one relacji, które zostały już zdefiniowane. Jeśli korzystasz z innych kwerend (zamiast lub jako źródeł danych w tabelach) jako źródła danych dla kwerendy, możesz utworzyć sprzężenia między kwerendami źródłowymi, a także między tymi kwerendami a wszystkimi tabelami, które są używane jako źródła danych.

Sprzężenia zachowują się podobnie do kryteriów kwerendy, które określają reguły, które muszą być zgodne z danymi, aby uwzględnić je w operacjach kwerendy. W odróżnieniu od kryteriów sprzężenia określa również, że każda para wierszy spełniających warunki sprzężenia zostanie połączona w zestawie rekordów w celu utworzenia jednego wiersza.

Istnieją cztery podstawowe typy sprzężeń: sprzężenia wewnętrzne, sprzężenia zewnętrzne, sprzężenia krzyżowe i sprzężenia nierówne. W tym artykule opisano każdy typ sprzężenia, którego możesz użyć, dlaczego każdy z nich jest używany i jak utworzyć sprzężenia.

Sprzężenia są kwerendami, jakie relacje są tabelami: wskazanie sposobu łączenia danych z dwóch źródeł na podstawie wartości danych wspólnych. Oto ilustracja sprzężenia w widoku projektu kwerendy z otwartymi właściwościami sprzężenia w oknie dialogowym:

Okno Właściwości sprzężenia

Ten wiersz między tabelami reprezentuje sprzężenie. Kliknij dwukrotnie sprzężenie, aby otworzyć okno dialogowe Właściwości sprzężenia (przedstawione), a następnie przejrzyj lub Zmień sprzężenie.

Sprzężenia są czasami kierunkowe. W tym obszarze okna dialogowego jest wyświetlana tabela, w której znajduje się sprzężenie, oraz pola, do których można dołączyć tabele.

Ten obszar określa typ sprzężenia: Opcja 1 to sprzężenie wewnętrzne, 2 to lewe sprzężenie zewnętrzne, a 3 to prawe sprzężenie zewnętrzne.

Pola z obu tabel mogą być używane, a dane odnoszące się do danego zadania są wyświetlane w każdej z nich. W przypadku sprzężenia wewnętrznego nie są uwzględniane żadne inne dane. W przypadku sprzężenia zewnętrznego rekordy niepowiązane z jednej tabeli są również uwzględniane w wynikach kwerendy.

Początek strony

Typy sprzężeń

Istnieją cztery podstawowe typy sprzężeń: sprzężenia wewnętrzne, sprzężenia zewnętrzne, sprzężenia krzyżowe i sprzężenia nierówne. Sprzężenia krzyżowe i nierówne są to zaawansowane typy sprzężeń i rzadko używane, ale należy wiedzieć o nich, aby zapoznać się z opisem sposobu działania sprzężeń.

Sprzężenia wewnętrzne: tylko powiązane dane z obu tabel połączone

Sprzężenie wewnętrzne to takie, w którym program Access uwzględnia tylko dane z tabeli, jeśli w powiązanej tabeli znajdują się odpowiednie dane, i odwrotnie. W większości przypadków będziesz używać sprzężeń wewnętrznych. Gdy tworzysz sprzężenie i nie określisz rodzaju dołączania, program Access przyjmuje, że chcesz dołączyć wewnętrzne. Sprzężenia wewnętrzne są przydatne, ponieważ umożliwiają łączenie danych z dwóch źródeł na podstawie wartości współużytkowanych — dane są wyświetlane tylko wtedy, gdy jest wyświetlany kompletny obraz.

Sprzężenia zewnętrzne: wszystkie powiązane dane są poprawnie połączone, a wszystkie pozostałe rekordy z jednej tabeli

Sprzężenie zewnętrzne jest jak sprzężenie wewnętrzne, ale pozostałe wiersze są dodawane z jednej z tabel. Sprzężenia zewnętrzne są kierunkowe: lewe sprzężenie zewnętrzne zawiera wszystkie rekordy z lewej tabeli — pierwsza tabela w sprzężeniu — oraz prawe sprzężenie zewnętrzne obejmuje wszystkie rekordy z prawej tabeli — drugą tabelę w sprzężeniu.

Pełne sprzężenia zewnętrzne: wszystkie dane, połączone tam, gdzie to możliwe

W niektórych systemach sprzężenie zewnętrzne może zawierać wszystkie wiersze z obu tabel, z uwzględnieniem połączonych wierszy. Jest to tzw. pełne sprzężenie zewnętrzne, a program Access nie obsługuje ich. Jednak w celu osiągnięcia tego samego skutku można użyć sprzężenia krzyżowego i kryteriów.

Sprzężenia krzyżowe: wszystkie dane, połączone w każdy możliwy sposób

W większości przypadków sprzężenie krzyżowe jest efektem ubocznym dodania dwóch tabel do zapytania, a następnie zapomnienia o przyłączeniu do nich. Program Access interpretuje to oznacza, że chcesz wyświetlić wszystkie rekordy z jednej tabeli połączonej z każdym rekordem z drugiej tabeli — wszystkie możliwe kombinacje rekordów. Ponieważ nie można łączyć danych, ten rodzaj sprzężenia rzadko daje przydatne wyniki. Jednak w przypadku sprzężenia krzyżowego jest to tylko potrzebne.

Sprzężenia nierówne: jak zwykłe sprzężenie, ale przy użyciu innego porównania do łączenia wierszy

Sprzężenia nierówne używają operatora innego niż znak równości (=) do porównywania wartości i określania, czy i jak połączyć dane. Sprzężenia nierówne nie są wyraźnie obsługiwane, ale można użyć sprzężenia krzyżowego i kryterium, aby osiągnąć ten sam efekt.

Wyświetlanie wierszy, w których istnieje wspólna wartość w obu sprzężonych tabelach

Jeśli chcesz wyświetlić tylko te wiersze, które mają pasujące wartości w polu sprzężonym, użyj sprzężenia wewnętrznego. Program Access automatycznie tworzy sprzężenia wewnętrzne.

Sprzężenia wewnętrzne to najpopularniejszy typ sprzężenia. Informują one kwerendę, że wiersze z jednej z tabel sprzężonych odpowiadają wierszom z drugiej tabeli, na podstawie danych w sprzężonych polach. Gdy zostanie uruchomione zapytanie z dołączeniem wewnętrznym, tylko te wiersze, w których istnieje wspólna wartość w obu sprzężonych tabelach zostaną uwzględnione w operacjach kwerendy.

Jak używać sprzężenia wewnętrznego?

W większości przypadków nie musisz nic robić, aby używać sprzężenia wewnętrznego. Jeśli tabele dodane do kwerendy już mają relacje, program Access automatycznie utworzy sprzężenie wewnętrzne między każdą parą powiązanych tabel, dodając tabele. Jeśli więzy integralności jest wymuszana, program Access wyświetla również znak "1" powyżej linii sprzężenia, aby wskazać, która tabela znajduje się po stronie "jeden" relacja jeden-do-wielu, a symbol nieskończoności (), aby pokazać tabelę na stronie "wiele".

Nawet jeśli nie utworzono relacji, program Access automatycznie tworzy sprzężenia wewnętrzne, jeśli do kwerendy zostaną dodane dwie tabele, a te tabele zawierają pole z takim samym lub zgodnym typem danych, a jedno z pól sprzężeń jest klucz podstawowy. Symbole "1" i "wiele" nie są wyświetlane w tym przypadku, ponieważ więzy integralności nie są wymuszane.

Jeśli do kwerendy zostaną dodane zapytania i nie utworzono relacji między nimi, program Access nie tworzy automatycznie sprzężeń wewnętrznych między tymi kwerendami lub między kwerendami i tabelami. Ogólnie, należy je utworzyć samodzielnie. Możesz utworzyć sprzężenie wewnętrzne, przeciągając pole z jednego źródła danych do pola w innym źródle danych. Program Access wyświetli linię między tymi dwoma polami, co oznacza, że sprzężenie zostało utworzone.

Składnia SQL dla sprzężenia wewnętrznego

Sprzężenia wewnętrzne są określane w języku SQL w klauzuli FROM, jak pokazano poniżej:

FROM tabela1 INNER JOIN tabela2 ON tabela1.pole1 Compare tabela2.pole2

Operacja INNER JOIN zawiera następujące segmenty:

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.

dwóch

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

Aby uzyskać więcej informacji na temat składni sprzężenia wewnętrznego, zobacz temat operacja INNER JOIN.

Początek strony

Pokazywanie wszystkich wierszy z jednej tabeli oraz odpowiadających im wierszy z drugiej tabeli

Sprzężenia zewnętrzne informują kwerendę, że niektóre wiersze po obu stronach sprzężenia odpowiadają dokładnie, kwerenda powinna zawierać wszystkie wiersze z jednej tabeli, a także wiersze z drugiej tabeli, które mają wspólną wartość po obu stronach sprzężenia.

Sprzężenia zewnętrzne można pozostawiać sprzężenia zewnętrzne lub można je przyłączyć zewnętrznym. W lewym sprzężeniu zewnętrznym kwerenda zawiera wszystkie wiersze z pierwszej tabeli w klauzuli SQL FROM, a tylko te wiersze z drugiej tabeli, w których pole sprzęgające zawiera wartości wspólne dla obu tabel. W prawym sprzężeniu zewnętrznym kwerenda zawiera wszystkie wiersze z drugiej tabeli w klauzuli SQL FROM, a tylko te wiersze z drugiej tabeli, w których pole sprzęgające zawiera wartości wspólne dla obu tabel.

Uwaga: Możesz w łatwy sposób określić, która tabela jest tabelą lewą lub prawą tabelę w danym sprzężeniu, klikając dwukrotnie sprzężenie, a następnie przeglądając okno dialogowe Właściwości sprzężenia . Możesz również przełączyć się do widoku SQL, a następnie sprawdzić klauzulę FROM.

Ponieważ niektóre wiersze po jednej stronie sprzężenia zewnętrznego nie będą miały odpowiednich wierszy z drugiej tabeli, niektóre pola zwrócone w wynikach kwerendy z tej innej tabeli będą puste, jeśli wiersze te nie są zgodne.

Jak używać sprzężenia zewnętrznego?

Możesz utworzyć sprzężenie zewnętrzne, modyfikując istniejące sprzężenie wewnętrzne. Jeśli nie istnieje sprzężenie wewnętrzne, utwórz je, a następnie zmień je na sprzężenie zewnętrzne.

Zmienianie sprzężenia wewnętrznego na sprzężenie zewnętrzne

  1. W widoku Projekt kwerendy kliknij dwukrotnie sprzężenie, które chcesz zmienić.

    Zostanie wyświetlone okno dialogowe Właściwości sprzężenia.

  2. W oknie dialogowym Właściwości sprzężenia Zwróć uwagę na listę opcji, które znajdują się obok opcji 2 i opcji 3.

  3. Kliknij opcję, której chcesz użyć, a następnie kliknij przycisk OK.

  4. Program Access wyświetli sprzężenie i wyświetli strzałkę wskazującą źródło danych, w którym wszystkie wiersze zostaną uwzględnione w źródle danych, w którym zostaną uwzględnione tylko te wiersze, które spełniają warunek sprzężenia.

Niejednoznaczne sprzężenia zewnętrzne

W przypadku utworzenia kwerendy zawierającej SPRZĘŻENIe LEWOSTRONNE i SPRZĘŻENIe wewnętrzne program Access może nie być w stanie ustalić, którą operację dołączania należy wykonać w pierwszej kolejności. Ponieważ wyniki różnią się w zależności od tego, czy najpierw jest wykonywane sprzężenie lewostronne, czy sprzężenie wewnętrzne, program Access wyświetli komunikat o błędzie:

Aby naprawić ten błąd, należy zmodyfikować zapytanie tak, aby było jasne, a najpierw dołączyć do niego.

Składnia SQL dla sprzężenia zewnętrznego

Sprzężenia zewnętrzne są określane w języku SQL w klauzuli FROM, jak pokazano poniżej:

FROM Tabela1 [Left | RIGHT] Join tabela2
on Tabela1. pole1 Porównaj tabela2. pole2

Operacje LEFT JOIN i RIGHT JOIN zawierają następujące segmenty:

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.

dwóch

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

Aby uzyskać więcej informacji na temat składni sprzężenia zewnętrznego, zobacz temat doŁĄCZAnie do lewej, operacjesprzężenia po prawej stronie.

Początek strony

Wyświetlanie wszystkich wierszy z obu tabel i dołączanie do nich w przypadku istnienia wspólnej wartości

Jeśli chcesz pokazać wszystkie wiersze z dwóch tabel i dołączyć je na podstawie typowych wartości, użyj pełnego sprzężenia zewnętrznego. Program Access nie obsługuje jawnie pełnych sprzężeń zewnętrznych, ale można osiągnąć ten sam efekt przy użyciu kwerendy składającej. Poniższa procedura wyjaśnia, jak to zrobić, ale jeśli chcesz uzyskać więcej informacji na temat zapytań składających, zobacz sekcję Zobacz też .

Aby użyć kwerendy składającej w celu wykonania pełnego sprzężenia zewnętrznego:

  1. Utwórz zapytanie, które zawiera lewe sprzężenie zewnętrzne w polu, którego chcesz użyć do pełnego sprzężenia zewnętrznego.

  2. Na karcie Narzędzia główne w grupie Widoki kliknij pozycję Widok i kliknij pozycję Widok SQL.

  3. Naciśnij klawisze CTRL + C, aby skopiować kod SQL.

  4. Usuń średnik na końcu klauzuli FROM, a następnie naciśnij klawisz ENTER.

  5. Wpisz ciąg UNION i naciśnij klawisz ENTER.

    Uwaga: Nie używaj słowa kluczowego ALL podczas używania kwerendy składającej w celu wykonania pełnego sprzężenia zewnętrznego.

  6. Naciśnij klawisze CTRL + V, aby wkleić kod SQL skopiowany w kroku 3.

  7. W programie, który został wkleić, Zmień pozycję do lewej , aby dołączyć do prawej.

  8. Usuń średnik na końcu drugiej klauzuli FROM, a następnie naciśnij klawisz ENTER.

  9. Dodaj klauzulę WHERE określającą, że wartość w polu sprzężenia jest RÓWNa NULL w pierwszej tabeli wymienionej w klauzuli FROM (w lewej tabeli).

    Jeśli na przykład klauzula FROM jest:

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

    Dodaj następującą klauzulę WHERE:

    WHERE Products.ID IS NULL

  10. Wpisz średnik (;) na końcu klauzuli WHERE, aby wskazać koniec kwerendy składającej.

  11. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Sprzężenia krzyżowe

Sprzężenia krzyżowe różnią się od sprzężeń wewnętrznych i zewnętrznych, ponieważ nie są one wyraźnie reprezentowane w Access. W przypadku sprzężenia krzyżowego każdy wiersz z jednej tabeli jest połączony z każdym wierszem z innej tabeli, co oznacza, że jest to iloczyn skrzyżowania lub produkt iloczyn kartezjański. W każdym uruchomieniu kwerendy zawierającej tabele, które nie są jawnie sprzężone, powstaje wynik iloczynu krzyżowego. Sprzężenia krzyżowe są zwykle niezamierzone, ale istnieją przypadki, w których mogą być przydatne.

Dlaczego mam korzystać z sprzężenia krzyżowego?

Jeśli chcesz sprawdzić każdą możliwą kombinację wierszy między dwiema tabelami lub kwerendami, użyj sprzężenia krzyżowego. Załóżmy na przykład, że Twoja firma korzystała z roku Spectacular i rozważasz, że klienci mają rabaty. Możesz utworzyć zapytanie, które sumuje zakupy poszczególnych klientów, Utwórz małą tabelę zawierającą kilka możliwych wartości procentowych rabatów oraz łączą dwa w innych kwerendach, które wykonują sprzężenie krzyżowe. Użytkownik tworzy zapytanie, w którym jest wyświetlany zestaw hipotetycznych rabatów dla każdego klienta.

Jak używać sprzężenia krzyżowego?

Sprzężenie krzyżowe jest tworzone za każdym razem, gdy w kwerendzie są dołączane tabele lub kwerendy i nie trzeba tworzyć co najmniej jednego jawnego sprzężenia dla każdej tabeli lub kwerendy. Program Access łączy wszystkie wiersze z każdej tabeli lub kwerendy, która nie jest jawnie dołączona do żadnej innej tabeli lub kwerendy do każdego drugiego wiersza w wynikach. Uwzględnij scenariusz rabatu w poprzednim akapicie. Załóżmy, że masz 91 klientów, a chcesz wyszukać pięć możliwych procentów rabatów. Dołączenie krzyżowe powoduje utworzenie wierszy 455 (iloczyn 91 i 5).

Ponieważ użytkownik może wyobrazić, niezamierzone sprzężenia krzyżowe mogą utworzyć ogromną liczbę wierszy w wynikach zapytania. Ponadto te wyniki są zwykle oznaczane bez względu na to, że jeśli nie zamierzasz połączyć każdego wiersza z każdym innym wierszem, większość połączonych wierszy wyświetlanych w wynikach nie będzie sensem. Na koniec kwerendy korzystające z nieumyślnego sprzężenia krzyżowego mogą trwać bardzo długo.

Niezamierzone sprzężenie krzyżowe w widoku Projekt kwerendy

1. należy przyłączyć pola z zakreślonymi polami.

Niezamierzony iloczyn wektorowy

1. Zanotuj bardzo dużą liczbę rekordów.

Poprawiony wynik kwerendy

1. Zauważ, że liczba rekordów jest o wiele mniejsza.

Początek strony

Sprzęganie tabel na podstawie nierówności wartości pól

Sprzężenia nie muszą być oparte na równoważności sprzężonych pól. Sprzężenie może być oparte na dowolnym operatorze porównania, takim jak większe niż (>), mniejsze niż (<) lub nie równe (<>). Sprzężenia, które nie są oparte na równoważności, są nazywane sprzężeniami nierównymi.

Jeśli chcesz połączyć wiersze dwóch źródeł danych na podstawie wartości pól, które nie są równe, użyj nierównego sprzężenia. Zazwyczaj sprzężenia nierówne są oparte na wartości większej niż (>), mniejszej niż (<), większej lub równej (> =) lub mniejszej lub równej (< =) operatorów porównania. Sprzężenia nierówne, które są oparte na operatorze not równa się (<>), mogą zwracać prawie tyle wierszy jako sprzężenia krzyżowego, a wyniki mogą być trudne do zinterpretowania.

Jak używać sprzężenia nierównego?

Sprzężenia nierówne nie są obsługiwane w widoku projektu. Jeśli chcesz korzystać z nich, musisz to zrobić za pomocą widoku SQL. Możesz jednak utworzyć sprzężenie w widoku projektu, przejść do widoku SQL, znaleźć operator porównania równości (=) i zmienić go na operator, którego chcesz użyć. Po wykonaniu tej czynności można ponownie otworzyć zapytanie w widoku projektu, jeśli najpierw zmienisz operator porównania na równości (=) w widoku SQL.

Usuwanie sprzężenia

Jeśli program Access automatycznie utworzy sprzężenie, które nie jest potrzebne, lub w przypadku pomyłkowego utworzenia sprzężenia — na przykład sprzężenie między dwoma polami, które mają podobne typy danych, możesz usunąć sprzężenie.

  1. W siatce projektu kwerendy kliknij sprzężenie, które chcesz usunąć.

  2. Naciśnij klawisz delete.

— lub —

  • W siatce projektu kwerendy kliknij prawym przyciskiem myszy sprzężenie, które chcesz usunąć, a następnie kliknij polecenie Usuń.

Początek strony

Zobacz też

Dodawanie rekordów do tabeli przy użyciu kwerendy

Łączenie wyników kilku zapytań wybierających przy użyciu kwerendy składającej

Tworzenie zapytania opartego na wielu tabelach

Tworzenie, edytowanie lub usuwanie relacji

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×