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. Es handelt sich hierbei um eine konzeptuelle Erklärung der Verarbeitung dieser Abfrage, 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).
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |