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 » Inner- und Outer-Joins

 

Transact-SQL-Outer-Joins (*= oder =*)

Hinweis

Die Unterstützung für die Transact-SQL-Outer-Join-Operatoren *= und =* wird nicht weiterentwickelt und in einer zukünftigen Version entfernt werden.

In Übereinstimmung mit ANSI/ISO SQL-Standards unterstützt SQL Anywhere die Schlüsselwörter LEFT OUTER, RIGHT OUTER und FULL OUTER. Aus Gründen der Kompatibilität mit Adaptive Server Enterprise vor Version 12 unterstützt SQL Anywhere auch die Transact-SQL-Gegenstücke dieser Schlüsselwörter, also *= und =*, falls die Datenbankoption "tsql_outer_joins" auf "On" gesetzt ist. Weitere Hinweise finden Sie unter tsql_outer_joins-Option [Kompatibilität].

Es gibt jedoch Einschränkungen und potenzielle Probleme mit der Semantik von Transact-SQL. Eine ausführliche Beschreibung von Transact-SQL Outer-Joins finden Sie im Whitepaper Semantics and Compatibility of Transact-SQL Outer Joins, das unter der folgenden Internetadresse zu finden ist: [external link] http://www.sybase.com/detail?id=1017447.

Im Transact-SQL-Dialekt erstellen Sie Outer-Joins, indem Sie eine kommagetrennte Liste von Tabellen in der FROM-Klausel bereitstellen und die Sonderoperatoren *= oder =* in der WHERE-Klausel verwenden. In Adaptive Server Enterprise vor Version 12 muss die Bedingung in der WHERE-Klausel enthalten sein (ON wurde nicht unterstützt).

Achtung

Wenn Sie Outer-Joins erstellen, darf die Syntax *= nicht mit der Syntax der ON-Klausel gemischt werden. Dies gilt auch für Ansichten, die in der Abfrage referenziert werden.

Beispiel

Der folgende Links-Outer-Join listet alle Kunden auf und findet ihre Bestelldaten (wenn vorhanden):

SELECT GivenName, Surname, OrderDate
FROM Customers, SalesOrders
WHERE Customers.ID *= SalesOrders.CustomerID
ORDER BY OrderDate;

Diese Anweisung ist gleichwertig zur folgenden Anweisung, in der die ANSI/ISO-Syntax verwendet wird:

SELECT GivenName, Surname, OrderDate
FROM Customers LEFT OUTER JOIN SalesOrders
ON Customers.ID = SalesOrders.CustomerID
ORDER BY OrderDate;

Einschränkungen bei Transact-SQL-Outer-Joins
Ansichten mit Outer-Joins von Transact-SQL verwenden
Wie NULL Transact-SQL-Joins beeinflusst