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) » UltraLite - Datenbankverwaltung » UltraLite-SQL-Referenz » UltraLite-SQL-Anweisungen

 

UltraLite FROM-Klausel

Mit dieser Klausel geben Sie die Tabellen oder Ansichten an, die in einer SELECT-Anweisung verwendet werden.

Syntax
FROM  Tabellenausdruck, ...
Tabellenausdruck :
[ Tabellenname
[ [ AS ] Korrelationsname ]
| ( SELECT_Ausdruck
) [ AS ] abgeleiteter_Tabellenname  ( Spaltenname, … )
| ( Tabellenausdruck
| ) Tabellenausdruck Join-Operator Tabellenausdruck [ ON Suchbedingung ] ...
Join-Operator :
,
| INNER JOIN
| CROSS JOIN 
| LEFT OUTER JOIN 
| JOIN
Parameter

Tabellenname   Eine Basistabelle oder temporäre Tabelle. Tabellen können nicht verschiedenen Benutzern in UltraLite gehören. Wenn Sie Tabellen mit der Benutzer-ID qualifizieren, wird die ID ignoriert.

Korrelationsname   Ein Bezeichner, der verwendet wird, wenn eine Referenzierung der Tabelle an anderer Stelle in der Anweisung erfolgt. Beispiel: In der folgenden Anweisung ist a als der Korrelationsname für die Tabelle Contacts festgelegt, und b ist der Korrelationsname für die Tabelle Customers.

SELECT *
FROM Contacts a, Customers b 
WHERE a.CustomerID=b.ID;

abgeleiteter_Tabellenname   Eine abgeleitete Tabelle ist eine verschachtelte SELECT-Anweisung in der FROM-Klausel.

Elemente aus der SELECT-Liste der abgeleiteten Tabelle werden vom (optionalen) abgeleiteten Tabellennamen referenziert, der von einem Punkt (.) und dem Spaltennamen gefolgt wird. Sie können den Spaltennamen auch alleine verwenden, wenn er eindeutig ist.

Es ist nicht möglich, abgeleitete Tabellen innerhalb der SELECT-Anweisung zu referenzieren. Weitere Hinweise finden Sie unter Unterabfragen in Ausdrücken.

Join-Operator   Geben Sie den Typ des Joins an. Wenn Sie ein Komma (,) oder CROSS JOIN angeben, können Sie keine ON-Unterklausel angeben. Wenn Sie JOIN angeben, müssen Sie eine ON-Unterklausel angeben. Bei INNER JOIN und LEFT OUTER JOIN ist die ON-Klausel optional.

Bemerkungen

Wenn keine FROM-Klausel vorhanden ist, müssen die Ausdrücke in der SELECT-Anweisung ein konstanter Ausdruck sein.

Abgeleitete Tabellen

Obwohl sich diese Beschreibung auf Tabellen bezieht, gilt sie, sofern nicht anders angegeben, auch für abgeleitete Tabellen.

Die FROM-Klausel erstellt eine Ergebnismenge, die aus allen Spalten aller angegebenen Tabellen besteht. Anfänglich sind alle Zeilenkombinationen in den angegebenen Tabellen in der Ergebnismenge enthalten und die Anzahl der Kombinationen wird im Allgemeinen durch JOIN-Bedingungen bzw. WHERE-Klauseln verringert.

Wenn Sie keinen Join-Typ angeben und stattdessen die Tabellen in einer durch Komma getrennte Liste anführen, wird standardmäßig ein CROSS JOIN verwendet.

Bei INNER-Joins gibt die Beschränkung der Ergebnisse des Joins mit einer ON-Klausel oder WHERE-Klausel gleichwertige Ergebnisse zurück. Bei OUTER-Joins sind die beiden nicht gleichwertig.

Hinweis

UltraLite unterstützt weder KEY JOINS noch NATURAL JOINS.

Siehe auch
Beispiel

Die folgenden Klauseln sind gültige FROM-Klauseln:

...
FROM Employees
...
...
FROM Customers
CROSS JOIN SalesOrders
CROSS JOIN SalesOrderItems
CROSS JOIN Products
...

Die folgende Abfrage verwendet eine abgeleitete Tabelle, um die Namen der Kunden in der Tabelle Customers zurückzugeben, die mehr als drei Bestellungen in der Tabelle SalesOrders haben:

SELECT Surname, GivenName, number_of_orders
FROM Customers JOIN
     ( SELECT CustomerID, COUNT(*)
       FROM SalesOrders
       GROUP BY CustomerID )
     AS sales_order_counts( CustomerID, number_of_orders )
ON ( Customers.id = sales_order_counts.CustomerID )
WHERE number_of_orders > 3;