Share via


Verknüpfungstypen

Aktualisiert: November 2007

Beim Verknüpfen von Tabellen bestimmt der verwendete Verknüpfungstyp darüber, welche Zeilen im Resultset aufgeführt werden. Sie können die folgenden Verknüpfungstypen erstellen:

  • Innere Verknüpfung   Bei dieser Verknüpfung werden nur die Zeilen angezeigt, die in beiden verknüpften Tabellen übereinstimmen. (Dies ist der Standardverknüpfungstyp im Abfrage- und Ansicht-Designer.) Sie können z. B. die Tabellen titles und publishers verknüpfen, um ein Resultset mit dem Namen des Herausgebers für jeden Titel zu erstellen. In einer inneren Verknüpfung werden Titel, für die keine Informationen zum Herausgeber vorliegen, sowie Herausgeber ohne gespeicherte Titel nicht in das Resultset aufgenommen. Für eine solche Verknüpfung kann folgende SQL-Anweisung formuliert werden:

    SELECT     title, pub_name
    FROM         titles INNER JOIN
    publishers ON titles.pub_id = publishers.pub_id
    
    Hinweis:

    Spalten mit dem Wert NULL liefern bei keinem Wert eine Übereinstimmung, wenn Sie eine innere Verknüpfung erstellen, und werden daher nicht in das Resultset aufgenommen. Nullwerte liefern keine Übereinstimmung mit anderen Nullwerten.

  • Äußere Verknüpfung   Bei dieser Verknüpfung werden Zeilen auch dann in das Ergebnis aufgenommen, wenn keine zugehörigen Spalten in der verknüpften Tabelle vorhanden sind. Sie können unter drei Variationen einer äußeren Verknüpfung wählen, um festzulegen, welche Zeilen ohne Übereinstimmung im Ergebnis angezeigt werden sollen:

    • Linke äußere Verknüpfung   Alle Zeilen der zuerst angegebenen Tabelle (d. h. der "linken" Tabelle, die in der JOIN-Klausel ganz links steht) werden aufgenommen. Zeilen in der rechts stehenden Tabelle ohne Übereinstimmung werden nicht im Ergebnis angezeigt. Die folgende SQL-Anweisung ist ein Beispiel für eine linke äußere Verknüpfung der Tabellen titles und publishers, bei der alle Titel aufgenommen werden, auch wenn keine Informationen zum Herausgeber eines Titels vorliegen:

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles LEFT OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
    • Rechte äußere Verknüpfung   Alle Zeilen der zweiten Tabelle (d. h. der "rechten" Tabelle, die in der JOIN-Klausel ganz rechts steht) werden aufgenommen. Zeilen in der links stehenden Tabelle ohne Übereinstimmung werden nicht im Ergebnis angezeigt. Beispielsweise werden bei einer rechten äußeren Verknüpfung der Tabellen titles und publishers alle Herausgeber aufgenommen, auch wenn keine zugehörigen Titel in der Tabelle titles vorhanden sind. Hierfür kann folgende SQL-Anweisung formuliert werden:

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles RIGHT OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
    • Vollständige äußere Verknüpfung   Alle Zeilen aus allen verknüpften Tabellen werden aufgenommen, auch wenn keine Übereinstimmungen vorliegen. Beispielsweise werden bei einer vollständigen äußeren Verknüpfung der Tabellen titles und publishers alle Titel und Herausgeber zurückgegeben, auch wenn keine Übereinstimmung in der jeweils anderen Tabelle vorhanden ist.

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles FULL OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
      Hinweis:

      Einige Datenbanken, z. B. Oracle, unterstützen keine vollständigen äußeren Verknüpfungen.

  • Kreuzverknüpfung   Bei dieser Verknüpfung wird im Resultset für jede mögliche Zeilenkombination aus beiden Tabellen eine Zeile zurückgegeben. Eine Kreuzverknüpfung der Tabelle der Autoren mit der Tabelle der Herausgeber liefert z. B. ein Resultset mit einer Zeile für jede mögliche Kombination aus Autor und Herausgeber. Hierfür kann folgende SQL-Anweisung formuliert werden:

    SELECT *
    FROM authors CROSS JOIN publishers 
    

Siehe auch

Konzepte

Arbeiten mit Daten im Ergebnisbereich

Weitere Ressourcen

Angeben von Suchkriterien