Tabellen in Verknüpfungen
Beim Kombinieren von Daten aus mehreren Tabellen müssen Sie eine Entscheidung darüber treffen, welche Tabellen in dem Join berücksichtigt werden sollen. Hierbei sollten Sie einige wichtige Punkte beachten:
Kombinieren von drei oder mehr Tabellen Jede JOIN-Operation verknüpft zwei Tabellen miteinander. Sie können jedoch mehrere JOIN-Operationen innerhalb einer Abfrage verwenden, um Daten aus einer beliebigen Anzahl von Tabellen zusammenzustellen. Da als Ergebnis jeder JOIN-Operation wiederum eine Tabelle zurückgegeben wird, können Sie dieses Ergebnis als Operanden in einer nachfolgenden Joinoperation verwenden. Um beispielsweise ein Resultset zu erstellen, in dem jede Zeile einen Buchtitel, einen Autor und den Prozentsatz angibt, den der Autor als Tantieme erhält, müssen Sie Daten aus drei Tabellen verknüpfen: authors, titles und titleauthor. Hierfür kann folgende SQL-Anweisung formuliert werden:
SELECT title, au_fname, au_lname, royaltyper FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id
Verwenden einer Tabelle zum Verknüpfen anderer Tabellen Sie können eine Tabelle auch dann in einem Join verwenden, wenn keine der Spalten dieser Tabelle im Resultset angezeigt werden soll. Um beispielsweise ein Resultset zu erstellen, in dem jede Zeile ein Titel/Filiale-Paar beschreibt, bei dem die genannte Filiale den entsprechenden Titel führt, verwenden Sie Spalten aus zwei Tabellen: titles und stores. Sie benötigen jedoch eine dritte Tabelle, sales, um die Filialen zu ermitteln, die einen bestimmten Titel verkauft haben. Hierfür kann folgende SQL-Anweisung formuliert werden:
SELECT title, stor_name FROM titles INNER JOIN sales ON titles.title_id = sales.title_id INNER JOIN stores ON sales.stor_id = stores.stor_id
Beachten Sie, dass keine Spalte aus der Tabelle sales im Resultset enthalten ist.
Zweifaches Verwenden einer Tabelle in einer Abfrage Sie können dieselbe Tabelle mehrmals innerhalb einer Abfrage verwenden. Weitere Informationen finden Sie unter Zweifaches Verwenden einer Tabelle in einer Abfrage.
Verwenden anderer Elemente statt einer Tabelle Anstelle einer Tabelle können Sie auch eine Abfrage, eine Ansicht oder eine benutzerdefinierte Funktion verwenden, die eine Tabelle zurückgibt. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Abfragen mit anderen Quellen als einer Tabelle.
Weitere Informationen über das Hinzufügen von Tabellen zu einer Abfrage finden Sie unter Gewusst wie: Hinzufügen von Tabellen zu Abfragen.