Typy sprzężeń
Przy sprzęganiu tabel typ tworzonego sprzężenia wpływa na wiersze, które pojawiają się w zestawie wyników.Można utworzyć następujące typy sprzężeń:
Sprzężenie wewnętrzne sprzężenie, które są wyświetlane wiersze, które mają odpowiedniki w obu sprzęganych tabelach.(Jest to domyślny typ sprzężenia w kwerendy i projektanta widoku.) Na przykład można dołączyć titles i publishers tabele, aby utworzyć zestaw wyników, która zawiera nazwę wydawcy każdego tytułu.W przypadku sprzężenia wewnętrznego tytuły, dla których nie ma informacji o wydawcy nie są uwzględnione w zestawie wyników nie są wydawcy bez przypisanych tytułów.Wynikowa instrukcja SQL tworząca takie sprzężenie może wyglądać następująco:
SELECT title, pub_name FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id
[!UWAGA]
Kolumny zawierające wartość NULL nie odpowiadają żadnym wartościom, podczas tworzenia sprzężenia wewnętrznego i dlatego są wykluczane z zestawu wyników.Wartości Null nie pasują do siebie innych wartości null.
Sprzężenie zewnętrzne Sprzężenie zawierające wiersze, nawet jeśli nie są one powiązane wiersze w tabeli sprzężonej.Można utworzyć trzy odmiany sprzężenia zewnętrznego w celu okreolenia niepasujących wierszy, do uwzględnienia:
Lewe sprzężenie zewnętrzne uwzględniane są wszystkie wiersze z tabeli o nazwie pierwszy ("lewa" Tabela, która pojawia się po lewej stronie w klauzuli JOIN).Niepasujące wiersze z tabeli po prawej nie są wyświetlane.Na przykład, poniższa instrukcja SQL ilustruje lewostronne sprzężenie zewnętrzne między titles i publishers tabel do uwzględnienia wszystkich tytułów, nawet tych nie ma informacji o wydawcy:
SELECT titles.title_id, titles.title, publishers.pub_name FROM titles LEFT OUTER JOIN publishers ON titles.pub_id = publishers.pub_id
Prawe sprzężenie zewnętrzne uwzględniane są wszystkie wiersze w tabeli o nazwie second ("prawa" tabeli, która pojawia się po prawej stronie w klauzuli JOIN).Niepasujące wiersze w lewej tabeli, nie są uwzględniane.Na przykład, prawe sprzężenie zewnętrzne między titles i publishers tabele zostaną uwzględnione wszystkie wydawców, nawet tych, którzy mają nie mają tytułów w titles tabeli.Wynikowa instrukcja SQL może mieć następującą postać:
SELECT titles.title_id, titles.title, publishers.pub_name FROM titles RIGHT OUTER JOIN publishers ON titles.pub_id = publishers.pub_id
Pełne sprzężenie zewnętrzne z wszystkich sprzężonych tabel zostały uwzględnione wszystkie wiersze, czy są pasujące lub nie.Na przykład pełne sprzężenie zewnętrzne między titles i publishers Wyświetla wszystkie tytuły i wszystkich wydawców, nawet te, które mają nie pasują do drugiej tabeli.
SELECT titles.title_id, titles.title, publishers.pub_name FROM titles FULL OUTER JOIN publishers ON titles.pub_id = publishers.pub_id
[!UWAGA]
Niektóre bazy danych, takich jak Oracle, nie obsługują pełne sprzężenia zewnętrzne.
Cross join sprzężenie, w którym zestaw wyników zawiera jeden wiersz dla każdej istniejącej pary wierszy z dwóch tabel.Na przykład authors CROSS JOIN publishers plonów jest zestaw wyników zawierający jeden wiersz dla każdej kombinacji autor/wydawca.Wynikowa instrukcja SQL może mieć następującą postać:
SELECT * FROM authors CROSS JOIN publishers
Zobacz też
Koncepcje
Praca z danymi w okienku wyników