Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Domyślnie narzędzia Projektanta zapytań i widoków (Visual Database Tools) tworzą 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 FROM klauzuli, o ile te wiersze spełniają dowolne 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ść, w której tabele są wyświetlane w okienku Diagram (Visual Database Tools) nie jest istotne. Po określeniu lewego lub prawego sprzężenia zewnętrznego odwołujesz się do kolejności, w jakiej tabele zostały dodane do zapytania, oraz kolejności, w jakiej są wyświetlane w instrukcji SQL w okienku SQL (Visual Database Tools).
Tworzenie sprzężenia zewnętrznego
Utwórz połączenie automatycznie lub ręcznie. Aby uzyskać szczegółowe informacje, zobacz Dołączanie tabel automatycznie (Visual Database Tools) lub Ręczne dołączanie tabel (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 poniższe połączenie zewnętrzne znajduje wiersze w tabeli employee, które nie mają odpowiadających 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);