表可以使用连接条件进行连接。连接条件只不过是搜索条件。它基于列中各值间的关系从连接的各表中选择行的子集。例如,以下查询从 Products 和 SalesOrderItems 表中检索数据。
SELECT * FROM Products JOIN SalesOrderItems ON Products.ID = SalesOrderItems.ProductID; |
此查询中的连接条件为
Products.ID = SalesOrderItems.ProductID |
此连接条件意味着,只有那些在两个表中具有同一产品 ID 的行才能组合在结果集中。
连接条件可以是显式连接条件或生成的连接条件。显式连接条件是放在 ON 子句或 WHERE 子句中的连接条件。以下查询使用 ON 子句。该查询生成两个表的矢量积(各行的所有组合),但不包括 ID 号不匹配的那些行。结果是一个客户列表,列表中具有这些客户的订单的详细信息。
SELECT * FROM Customers JOIN SalesOrders ON SalesOrders.CustomerID = Customers.ID; |
生成的连接条件是您指定 KEY JOIN 或 NATURAL JOIN 时自动创建的连接条件。对于键连接,所生成的连接条件取决于表之间的外键关系。对于自然连接,生成的连接条件基于具有相同名称的列。
键连接语法和自然连接语法都是快捷方式:您只使用关键字 JOIN(无需 KEY 或 NATURAL),然后在 ON 子句中显式声明相同的连接条件,也可以获得相同的结果。
当您将 ON 子句与键连接或自然连接一起使用时,所使用的连接条件是显式指定的连接条件与生成的连接条件的联合。这意味着,这些连接条件用关键字 AND 组合在一起。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |