Udostępnij za pośrednictwem


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

Inne zasoby

Określanie kryteriów wyszukiwania