Udostępnij za pośrednictwem


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

  1. 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).

  2. 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)