Pełne sprzężenie zewnętrzne SQL Server

Podsumowanie: w tym samouczku dowiesz się, jak używać SQL Server FULL OUTER JOIN do odpytywania danych z dwóch lub więcej tabel.

Wprowadzenie do pełnego sprzężenia zewnętrznego SQL Server

FULL OUTER JOIN zwraca zestaw wyników zawierający wiersze z lewej i prawej tabeli. Jeśli nie ma pasujących wierszy dla wiersza w lewej tabeli, kolumny prawej tabeli będą miały wartości null. Podobnie, jeśli nie ma pasujących wierszy dla wiersza w prawej tabeli, kolumna lewej tabeli będzie miała wartości null.

Poniżej przedstawiono składnię FULL OUTER JOIN przy dołączaniu do dwóch tabel T1 i T2:

Code language: SQL (Structured Query Language) (sql)

Słowo kluczowe OUTER jest opcjonalne, więc możesz je pominąć, jak pokazano w następującym zapytaniu:

Code language: SQL (Structured Query Language) (sql)

W tej składni :

  • Najpierw określ lewą tabelę T1 w klauzuli FROM.
  • Po drugie, określ odpowiednią tabelę T2 i predykat łączenia.

Poniższy diagram Venna ilustruje FULL OUTER JOIN dwóch zestawów wyników:

Przykład pełnego sprzężenia zewnętrznego w SQL Server

Ustawmy przykładową tabelę, aby zademonstrować pełne sprzężenie zewnętrzne.

Najpierw utwórz nowe schemat o nazwie pm, który oznacza zarządzanie projektami.

Code language: SQL (Structured Query Language) (sql)

Następnie utwórz nowe tabele o nazwie projects i members w schemacie pm:

Załóżmy, że tylko każdy członek może uczestniczyć w jednym projekcie, a każdy projekt ma zero lub więcej członków. Jeśli projekt jest w fazie pomysłu, nie ma przypisanego członka.

Następnie wstaw kilka wierszy do projects i members tabele:

Następnie wyszukaj dane z tabel projects i members:

Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)

Na koniec użyj FULL OUTER JOIN, aby wyszukać dane z tabel projects i members:

Oto wynik:

W tym przykładzie zapytanie zwróciło członków, którzy uczestniczą w projektach, członków, którzy nie uczestniczą w żadnych projektach oraz projekty, które nie mają żadnych członków.

Aby znaleźć członków, którzy nie uczestniczą w dowolny projekt i projekty w Jeśli nie masz żadnych członków, dodajesz klauzulę WHERE do powyższego zapytania:

Poniższy rysunek przedstawia wynik:

Jak wyraźnie widać w wynikach, Jack Daniel nie uczestniczy w żadnym projekcie, a Develop Mobile Sales Platform nie ma żadnych członków.

W tym samouczku nauczyłeś się, jak korzystać z pełnego zewnętrznego serwera SQL dołącz do zapytania o dane z dwóch lub więcej tabel.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *