Sprzęganie tabel i kwerend

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Po dołączeniu wielu źródeł danych w kwerendzie programu Access umożliwia sprzężenia ograniczyć liczbę rekordów, które mają być wyświetlane, oparte na jak źródeł danych są ze sobą powiązane. Umożliwia również sprzężenia łączenie rekordów z obu źródeł danych, tak że każdej pary rekordów źródłach staje się jeden rekord w wynikach kwerendy.

W tym artykule omówiono różne typy sprzężeń i przedstawiono sposób ich stosowania w kwerendzie. Sprzężenia są tworzone domyślnie, jeśli już istnieje relacja między dwa źródła danych używane w kwerendzie. Sprzężenia również jest tworzona w przypadku pól, które wyraźnie odpowiadają ze sobą. Możesz usunąć sprzężenie tworzonych automatycznie. Ten artykuł zawiera podstawowe informacje na temat relacji między tabelami, w tym jak go utworzyć.

Uwaga : Kwerendy można dołączyć w taki sam sposób łączenia tabel i obie również dołączyć.

W tym artykule

Omówienie

Typy sprzężeń

Pokazywanie wierszy, w którym ze wspólnymi wartościami w obu sprzężonych tabelach

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

Pokaż wszystkie wiersze z obu tabel i połączyć je, gdzie ze wspólnymi wartościami

Sprzężenia krzyżowe

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

Usuwanie sprzężenia

Omówienie

Baza danych jest Kolekcja tabel danych, które istnieją relacje logiczne ze sobą. Relacje umożliwiają łączenie tabel za pomocą pól, które mają wspólne. Tabeli może być częścią dowolną liczbę relacji, ale każdej relacji ma zawsze dokładnie dwie tabele. W kwerendzie relację przedstawia się za pomocą sprzężenia.

Po dodaniu tabeli do kwerendy Access tworzy sprzężenia, które są oparte na relacji, które zostały zdefiniowane między tabelami. Można ręcznie utworzyć sprzężenia w kwerendach, nawet jeśli nie przedstawiają relacji, które już zostały zdefiniowane. Jeśli używasz innych kwerend (oprócz lub zamiast tabel) jako źródła danych dla kwerendy, można tworzyć sprzężenia między kwerendami źródła, a także między kwerendami i tabelami, które są używane jako źródła danych.

Działanie sprzężeń jest podobne do kryteriów kwerendy w tym określają reguł, które muszą być zgodne dane mają zostać uwzględnione w operacji kwerendy. W przeciwieństwie do kryteriów sprzężenia także określić, że każdej pary wiersze, które spełniają warunki sprzężenia zostaną połączone w zestawie rekordów do utworzenia pojedynczego wiersza.

Istnieją cztery podstawowe typy sprzężeń: sprzężenia wewnętrzne, sprzężenia zewnętrzne, sprzężenia krzyżowe oraz sprzężenia nierówne. Ten artykuł opisuje wszystkie typy sprzężeń, których można używać, dlaczego używać każdego typu i jak tworzyć sprzężenia.

Sprzężenia są dla kwerend tym, czym relacje są dla tabel: określają, w jaki sposób dane z dwóch źródeł można łączyć na podstawie wspólnych wartości danych. Oto ilustracja przedstawiająca sprzężenie w widoku projektu kwerendy, wraz z właściwościami sprzężenia w otwartym oknie dialogowym:

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

Ta linia między tabelami przedstawia sprzężenia. Kliknij dwukrotnie sprzężenie, aby otworzyć okno dialogowe Właściwości sprzężenia (przedstawione) i przeglądanie lub zmienianie sprzężenia.

Sprzężenia są niekiedy sprzężeniami kierunkowymi. Ten obszar okna dialogowego wskazuje poszczególne tabele w sprzężeniu, a także pola użyte do sprzężenia tabel.

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

Można stosować pola z obu tabel. Dla każdej z nich są wyświetlane dane odnoszące się do określonego zadania. W sprzężeniu wewnętrznym nie są uwzględniane żadne inne dane. W przypadku sprzężenia zewnętrznego wyniki kwerendy uwzględniają niepowiązane rekordy z jednej z tabel.

Początek strony

Typy sprzężeń

Istnieją cztery podstawowe typy sprzężeń: sprzężenia wewnętrzne, sprzężenia zewnętrzne, sprzężenia krzyżowe oraz sprzężenia nierówne. Sprzężenia krzyżowe i nierówne to zaawansowane typy sprzężeń, które są rzadko stosowane, jednak warto się z nimi zapoznać, aby w pełni zrozumieć działanie sprzężeń.

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

W sprzężeniu wewnętrznym program Access uwzględnia dane z tabeli tylko wtedy, gdy powiązana tabela zawiera odpowiednie dane (i odwrotnie). Sprzężenia wewnętrzne są używane najczęściej. Gdy użytkownik tworzy sprzężenie bez określenia jego typu, program Access zakłada, że należy utworzyć sprzężenie wewnętrzne. Takie sprzężenia są przydatne do łączenia danych z dwóch źródeł na podstawie wspólnych wartości, tak aby dane były widoczne tylko wtedy, gdy są kompletne.

Sprzężenia zewnętrzne: wszystkie poprawnie powiązane dane oraz wszystkie pozostałe rekordy z jednej z tabel

Sprzężenie zewnętrzne jest podobne do wewnętrznego, ale uwzględnia pozostałe wiersze z jednej z tabel. Sprzężenia zewnętrzne są kierunkowe: lewe sprzężenie zewnętrzne uwzględnia wszystkie rekordy z lewej tabeli (pierwszej tabeli w sprzężeniu), natomiast prawe sprzężenie zewnętrzne uwzględnia wszystkie rekordy z prawej tabeli (drugiej tabeli w sprzężeniu).

Pełne sprzężenia zewnętrzne: wszystkie dane (połączone w razie możliwości)

W niektórych systemach sprzężenie zewnętrzne może uwzględniać wszystkie wiersze z obu tabel, łączone w przypadku ich zgodności. Ten typ sprzężenia nosi nazwę pełnego sprzężenia zewnętrznego i nie jest jawnie obsługiwany w programie Access. Można jednak zastosować sprzężenie krzyżowe i kryteria, aby uzyskać ten sam efekt.

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

Zazwyczaj sprzężenie krzyżowe powstaje jako efekt uboczny, gdy użytkownik doda dwie tabele do kwerendy i zapomni o sprzężeniu ich. Program Access interpretuje to jako zamiar wyświetlania każdego rekordu jednej tabeli w połączeniu z każdym rekordem drugiej tabeli — czyli każdej możliwej kombinacji rekordów. Ponieważ nie ma możliwości połączenia żadnych danych, takie sprzężenie rzadko generuje użyteczne wyniki. Istnieje jednak kilka przypadków, w których sprzężenie krzyżowe jest właściwym rozwiązaniem.

Sprzężenia nierówne: podobne do zwykłego sprzężenia, ale używające innego porównania do łączenia wierszy

W sprzężeniach nierównych do porównywania wartości i określania sposobu łączenia danych używany jest operator inny niż znak równości (=). Sprzężenia nierówne nie są jawnie obsługiwane, jednak można zastosować sprzężenie krzyżowe i kryteria, aby uzyskać ten sam efekt.

Pokazywanie wierszy, w którym ze wspólnymi wartościami w obu sprzężonych tabelach

Aby pokazywać tylko wiersze zawierające zgodne wartości w sprzężonym polu, należy skorzystać ze sprzężenia wewnętrznego. Sprzężenia wewnętrzne w programie Access są tworzone automatycznie.

Sprzężenia wewnętrzne są najczęściej używane typ sprzężenia. Informują one kwerendę, że wiersze z jednej sprzężonej tabeli odpowiadają wierszom w innej tabeli, na podstawie danych w połączonych polach. Po uruchomieniu kwerendy z sprzężenia wewnętrznego tylko te wiersze, w którym ze wspólnymi wartościami w obu sprzężonych tabelach są uwzględniane w operacji kwerendy.

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

Zazwyczaj nie trzeba wykonywać żadnych czynności, aby użyć sprzężenia wewnętrznego. Jeśli tabele dodawane do kwerendy są już powiązane relacjami, program Access automatycznie utworzy sprzężenie wewnętrzne między każdą parą powiązanych tabel w momencie ich dodawania. Jeśli są wymuszane więzy integralności, program Access wyświetli również cyfrę „1” nad linią sprzężenia, aby wskazać tabelę reprezentującą stronę „jeden” w relacja jeden-do-wielu, oraz wyświetli symbol nieskończoności (), aby wskazać tabelę reprezentującą stronę „wiele”.

Nawet jeśli nie utworzono relacje, Access automatycznie tworzy sprzężenia wewnętrzne, jeśli do kwerendy zostaną dodane dwie tabele i maja pole z tym samym lub zgodny typ danych i jedno z pól sprzężenia jest klucz podstawowy. Symbole "jeden" i "wiele" nie są wyświetlane w tym przypadku, ponieważ nie są wymuszane więzy integralności.

Jeśli kwerendy są dodawane do kwerendy, a nie utworzono relacje między kwerendami, Access nie tworzy automatycznie sprzężenia wewnętrzne między kwerendami lub zapytań i tabel. Ogólnie rzecz biorąc możesz je utworzyć samodzielnie. Możesz utworzyć sprzężenia wewnętrznego, przeciągając pole z jednego źródła danych w polu w innym źródle danych. Program Access wyświetli linię między dwa pola, aby wyświetlić utworzony sprzężenia.

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

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

FROM tabela1 INNER JOIN tabela2 ON tabela1. pole1 porównanie 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.

Porównaj

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

Aby uzyskać więcej informacji o 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 mimo że niektóre wiersze po obu stronach sprzężenia odpowiadają dokładnie, kwerenda ma uwzględniać wszystkich wierszy z jednej tabeli i wierszy z drugiej tabeli, które zawierają wartość wspólną po obu stronach sprzężenia.

Sprzężenia zewnętrzne można podzielić na sprzężenia zewnętrzne lewe i prawe. W sprzężeniu zewnętrznym lewym kwerenda uwzględnia wszystkie wiersze pierwszej tabeli w klauzuli FROM instrukcji SQL oraz tylko te wiersze drugiej tabeli, w których pole sprzęgające zawiera wartości wspólne dla obu tabel. W sprzężeniu zewnętrznym prawym kwerenda uwzględnia wszystkie wiersze drugiej tabeli w klauzuli FROM instrukcji SQL oraz tylko te wiersze pierwszej tabeli, w których pole sprzęgające zawiera wartości wspólne dla obu tabel.

Uwaga : Można łatwo odróżnić tabeli, która ma tabeli po lewej lub prawej tabeli w danym sprzężenia, klikając dwukrotnie sprzężenie, a następnie wyszukiwania w oknie dialogowym Właściwości sprzężenia. Można również przełączyć się do widoku SQL, a następnie sprawdź klauzuli FROM.

Niektóre wiersze po stronie „jeden” w sprzężeniu zewnętrznym mogą nie mieć swoich odpowiedników w drugiej tabeli, dlatego w takiej sytuacji niektóre pola drugiej tabeli zwrócone w wynikach kwerendy będą puste.

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

Sprzężenie zewnętrzne tworzy się, modyfikując istniejące sprzężenie wewnętrzne. Jeśli nie istnieje sprzężenie wewnętrzne, należy je utworzyć i zmienić w sprzężenie zewnętrzne.

Zmienianie sprzężenia wewnętrznego w zewnętrzne

  1. W widoku projektu 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 Uwaga opcji listę pozycji obok opcji 2 i opcja 3.

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

  4. Program Access wyświetli sprzężenie oraz strzałkę przebiegającą od źródła danych, w którym mają zostać uwzględnione wszystkie wiersze, do źródła danych, w którym zostaną uwzględnione tylko wiersze spełniające warunki sprzężenia.

Niejednoznaczne sprzężenia zewnętrzne

Jeśli tworzysz kwerendę, która zawiera LEFT JOIN i sprzężenia wewnętrznego programu Access nie można określić, które dołączanie operacji do wykonania najpierw. Ponieważ wyniki są różne w zależności od tego, czy lewe sprzężenie lub sprzężenia wewnętrznego jest wykonywane jako pierwsze, program Access wyświetli komunikat o błędzie:

Aby rozwiązać ten problem, należy zmodyfikować kwerendę tak, aby jest wyczyszczone, w której dołączanie do wykonywania najpierw.

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

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

FROM tabela1 [lewej | PRAWY] JOIN tabela2
na tabela1.pole1 porównanie 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.

Porównaj

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

Aby uzyskać więcej informacji na temat składni sprzężenia zewnętrznego zobacz temat LEFT JOIN, operacji dołączania do prawej.

Początek strony

Pokaż wszystkie wiersze z obu tabel i połączyć je, gdzie ze wspólnymi wartościami

Gdy użytkownik chce wyświetlić wszystkie wiersze z dwóch tabel i połączyć je na podstawie wartości typowych, użyj pełnego sprzężenia zewnętrznego. Program Access nie obsługuje jawnie pełne sprzężenia zewnętrzne, ale ten sam efekt można uzyskać za pomocą kwerendy składającej. Poniższa procedura wyjaśniono, jak to zrobić, ale jeśli chcesz uzyskać więcej informacji na temat kwerend składających, zobacz sekcję Zobacz też.

Aby wykonać pełne sprzężenie zewnętrzne za pomocą kwerendy składającej:

  1. Utwórz kwerendę zawierającą 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 przycisk Widok, a następnie kliknij polecenie 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 : Tworząc pełne sprzężenie zewnętrzne za pomocą kwerendy składającej, nie należy używać słowa kluczowego ALL.

  6. Naciśnij klawisze CTRL + V, aby wkleić kod SQL, który został skopiowany w kroku 3.

  7. We wklejonym kodzie zamień ciąg LEFT JOIN na ciąg RIGHT JOIN.

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

  9. Dodaj klauzulę WHERE określającą, że pole sprzężenia ma wartość NULL w pierwszej tabeli wyszczególnionej w klauzuli FROM (lewa tabela).

    Jeśli na przykład klauzula FROM jest następująca:

    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 pozycję Uruchom.

Sprzężenia krzyżowe

Sprzężenia krzyżowe różnią się od sprzężeń wewnętrznych i zewnętrznych, w tym nie są one jawnie reprezentowane w Access. W przypadku sprzężeń krzyżowych każdego wiersza z jednej tabeli zostanie połączona z każdego wiersza z innej tabeli, uzyskując tak zwany iloczyn wektorowy lub iloczyn kartezjański. Dowolnej chwili uruchomić kwerendę zawierającą tabele, które nie są jawnie sprzężone, iloczyn wektorowy jest wynikiem. Sprzężenia krzyżowe są zazwyczaj niezamierzone, ale istnieją przypadki, w których może być przydatne.

Dlaczego korzystać ze sprzężenia krzyżowego?

Jeśli chcesz sprawdzić każdą możliwą kombinację wierszy między dwie tabele lub kwerendy, należy korzystać ze sprzężenia krzyżowego. Załóżmy na przykład, Twoja firma ma widowiskowe roku i zamierzasz określeniu rabatów klientom. Można skonstruować kwerendę, która sumuje zakupy każdego klienta, utworzyć małe tabelę, która zawiera kilka możliwymi wartościami procentowymi rabatów i łączenie kształtów w innej kwerendzie, która wykonuje sprzężenie krzyżowe. Na końcu kwerendę, która zawiera zestaw teoretyczna rabatów dla każdego z klientów.

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

Sprzężenie krzyżowe jest tworzony w dowolnym momencie możesz dołączyć tabel i kwerend w kwerendzie, a nie tworzenie co najmniej jednego bezpośredniego sprzężenia dla każdej tabeli lub kwerendy. Access łączy każdy wiersz z każdej tabeli lub kwerendy, który nie jest jawnie dołączony do drugiej tabeli lub kwerendy do każdego wiersza w wynikach. Rozważmy scenariusz rabatu od poprzedniego akapitu. Przyjęto założenie, masz 91 klientów i chcesz przejrzeć pięć możliwymi wartościami procentowymi rabatów. Do sprzężenia krzyżowego tworzy 455 wierszy (iloczyn 91 i 5).

Oczywiście, niezamierzone sprzężenia krzyżowe mogą powodować dużej liczby wierszy w wynikach zapytania. Ponadto następujące wyniki są zazwyczaj znaczenia, jeśli faktycznie nie zamierzasz połączenie wszystkich wierszy co drugi wiersz, większość połączony wierszy wyświetlanych w wynikach nie zostaną wprowadzone właściwe rozwiązanie. Na koniec kwerendy używające niezamierzone sprzężenia krzyżowe wykonać bardzo długo.

Niezamierzone sprzężenie krzyżowe w widoku Projekt kwerendy
Niezamierzone połączenie krzyżowe w widoku Projekt kwerendy.

1 kółku pola powinny zostać połączone ze sobą.

Niezamierzony iloczyn wektorowy
Iloczyn krzyżowy zwrócony przez przedstawione powyżej niezamierzone sprzężenie krzyżowe.

1. Uwaga bardzo dużej liczby rekordów.

Poprawiony wynik kwerendy
Wyniki po utworzeniu prawidłowego sprzężenia.

1. Zauważ, że liczby rekordów jest mniejsze.

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. Podstawą sprzężenia może być dowolny operator porównania, na przykład większe niż (>), mniejsze niż (<) lub nie równa się (<>). Takie sprzężenia są nazywane sprzężeniami nierównymi.

Sprzężenie nierówne stosuje się, jeśli trzeba połączyć wiersze z dwóch źródeł danych na podstawie wartości pól, które nie są takie same. Zazwyczaj te sprzężenia są oparte na operatorach porównania: większe niż (>), mniejsze niż (<), większe niż lub równe (>=) oraz mniejsze niż lub równe (<=). Sprzężenia nierówne, w których użyto operatora nie równa się (<>), mogą zwrócić prawie tyle samo wierszy co sprzężenia krzyżowe. Może to utrudnić interpretację wyników.

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

Sprzężenia nierówne nie są obsługiwane w widoku projektu. Jeśli chcesz używać ich, należy to zrobić przy użyciu widoku SQL. Jednak można utworzyć sprzężenia w widoku projektu, przełącz się do widoku SQL, Znajdź równa się (=) operator porównania, a następnie zmień go, aby operator, którego chcesz użyć. Po wykonaniu tej czynności możesz tylko otworzyć kwerendę w widoku projektu ponownie po możesz pierwszej zmiany operator porównania z powrotem do równa się (=) w widoku SQL.

Usuwanie sprzężenia

Jeśli program Access automatycznie utworzy niepożądane sprzężenie lub jeśli zostanie ono omyłkowo utworzone przez użytkownika — na przykład między dwoma polami o różnych typach danych — można 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

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Zobacz też

Dodawanie rekordów do tabeli za pomocą kwerendy dołączającej

Łączenie wyników kilku kwerend wybierających za pomocą kwerendy składającej

Tworzenie kwerenda oparta na wielu tabel

Tworzenie, edytowanie lub usuwanie relacji

Rozwijaj swoje umiejętności
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.

×