Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Joins: Daten aus mehreren Tabellen abrufen » Natürliche Joins

 

Natürliche Joins von Ansichten und abgeleiteten Tabellen

Eine Erweiterung des ANSI/ISO SQL-Standards ist, dass Sie auf beiden Seiten eines natürlichen Joins Ansichten und abgeleitete Tabellen verwenden können. Sie haben z.B. folgende Anweisung:

SELECT *
FROM View1 NATURAL JOIN View2;

Die Spalten in Ansicht 1 werden mit den Spalten in Ansicht 2 verglichen. Wenn z.B. in beiden Ansichten eine Spalte namens "EmployeeID" gefunden wird und keine anderen Spalten mit identischen Namen vorhanden sind, wird die Join-Bedingung (View1.EmployeeID = View2.EmployeeID) generiert.

Beispiel

Folgendes Beispiel illustriert, dass eine Ansicht in einem natürlichen Join nicht nur Spalten, sondern auch Ausdrücke enthalten kann, die auf dieselbe Weise behandelt werden. Erstellen Sie zunächst die Ansicht V mit der Spalte x:

CREATE VIEW V(x) AS
SELECT R.y + 1
FROM R;

Danach erstellen Sie einen natürlichen Join der Ansicht zu einer abgeleiteten Tabelle. Die abgeleitete Tabelle hat den Korrelationsnamen T mit einer Spalte namens x.

SELECT *
FROM V NATURAL JOIN (SELECT P.y FROM P) as T(x);

Dieser Join entspricht Folgendem:

SELECT *
FROM V JOIN (SELECT P.y FROM P) as T(x) ON (V.x = T.x);