Tworzenie zewnętrznych łączeń (Visual Database Tools)
Dotyczy:programu SQL Server
Domyślnie Query and View Designer tworzy sprzężenie wewnętrzne między tabelami. Sprzężenia wewnętrzne eliminują wiersze, które nie są zgodne z wierszem z innej tabeli. Sprzężenia zewnętrzne zwracają jednak wszystkie wiersze z co najmniej jednej z tabel lub widoków wymienionych w klauzuli FROM, o ile te wiersze spełniają wszystkie warunki wyszukiwania WHERE lub HAVING. Jeśli chcesz uwzględnić wiersze danych w zestawie wyników, które nie mają dopasowania w tabeli sprzężonej, możesz utworzyć sprzężenie zewnętrzne.
Podczas tworzenia sprzężenia zewnętrznego kolejność wyświetlania tabel w instrukcji SQL (jak widać w okienku SQL) jest znacząca. Pierwsza dodana tabela staje się tabelą "lewa", a druga tabela staje się tabelą "prawa". (Rzeczywista kolejność wyświetlania tabel w okienku diagramu nie jest znacząca). Określenie lewego lub prawego sprzężenia zewnętrznego odnosi się do kolejności, w jakiej tabele zostały dodane do zapytania, oraz do kolejności, w jakiej są wyświetlane w instrukcji SQL w okienku SQL .
Aby utworzyć sprzężenie zewnętrzne
Utwórz połączenie automatycznie lub ręcznie. Aby uzyskać szczegółowe informacje, zobacz Join Tables Automatically (Visual Database Tools) lub Join Tables Manually (Visual Database Tools).
Wybierz linię połączenia w okienku Diagram, a następnie z menu projektanta zapytań wybierz pozycję Wybierz wszystkie wiersze z <nazwa tabeli>, dobierając polecenie, które uwzględnia tabelę, której dodatkowe wiersze chcesz uwzględnić.
Wybierz pierwszą tabelę, aby utworzyć łączenie lewostronne.
Wybierz drugą tabelę, aby utworzyć prawe sprzężenie zewnętrzne.
Wybierz obie tabele, aby utworzyć pełne sprzężenie zewnętrzne.
Po określeniu sprzężenia zewnętrznego projektant zapytań i widoków modyfikuje wiersz sprzężenia w celu wskazania sprzężenia zewnętrznego.
Ponadto projektant zapytań i widoków modyfikuje instrukcję SQL w okienku SQL w celu odzwierciedlenia zmiany typu sprzężenia, jak pokazano w następującej instrukcji:
SELECT employee.job_id, employee.emp_id,
employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON
employee.job_id = jobs.job_id
Ponieważ sprzężenie zewnętrzne zawiera niedopasowane wiersze, można go użyć do znajdowania wierszy naruszających ograniczenia klucza obcego. W tym celu należy utworzyć sprzężenie zewnętrzne, a następnie dodać warunek wyszukiwania, aby znaleźć wiersze, w których kolumna klucza podstawowego tabeli po prawej stronie ma wartość null. Na przykład następujące sprzężenie zewnętrzne znajduje wiersze w tabeli employee
, które nie mają odpowiednich wierszy w tabeli jobs
.
SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs
ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)
Zobacz też
zapytanie z sprzężeniami (Visual Database Tools)