Betrachten Sie folgende Abfrage, um zu verstehen, wie ein einfacher Inner-Join ausgewertet wird. Sie beantwortet die Frage: Welche Produktgrößen wurden in der Menge bestellt, die der Lagermenge entspricht?
SELECT DISTINCT Name, Size, SalesOrderItems.Quantity FROM Products JOIN SalesOrderItems ON Products.ID = SalesOrderItems.ProductID AND Products.Quantity = SalesOrderItems.Quantity; |
name | Size | Quantity |
---|---|---|
Baseball Cap | One size fits all | 12 |
Visor | One size fits all | 36 |
Sie können die Abfrage wie folgt interpretieren. Beachten Sie, dass es sich hierbei um eine konzeptuelle Erklärung der Verarbeitung dieser Abfrage handelt, um die Semantik einer Abfrage mit einem Join zu erklären. Die Erklärung stellt nicht dar, wie SQL Anywhere die Ergebnismenge tatsächlich ermittelt.
Es wird ein Kreuzprodukt der Tabellen "Products" und "SalesOrderItems" erstellt. Ein Kreuzprodukt enthält alle Zeilenkombinationen der beiden Tabellen.
Es werden alle Zeilen ausgeschlossen, bei denen die Produkt-IDs nicht identisch sind (mithilfe der Join-Bedingung Products.ID = SalesOrderItems.ProductID
).
Es werden alle Zeilen ausgeschlossen, bei denen die Menge nicht identisch ist (mithilfe der Join-Bedingung Products.Quantity = SalesOrderItems.Quantity
).
Es wird eine Ergebnistabelle mit drei Spalten erstellt: "Products.Name", "Products.Size" und "SalesOrderItems.Quantity".
Es werden alle Duplikatzeilen ausgeschlossen (mithilfe des Schlüsselworts DISTINCT).
Eine Beschreibung der Berechnung von Outer-Joins finden Sie unter Outer-Joins.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |