SQL Server左连接 LEFT JOIN子句用于查询来自多个表的数据。它返回左表中的所有的行和右表中的匹配行。如果在右表中找不到匹配行,则使用NULL代替显示。 以下说明如何使用LEFT JOIN子句来连接两个表T1和T2:
在上面语法中, T1 和 T2 分别是左表和右表。 对于 T1 表中的每一行,查询将其与 T2 表中的所有行进行比较。 如果一对行导致连接谓词计算为 TRUE ,则将组合这些行中的列值以形成新行,然后将其包含在结果集中。 如果左表( T1 )中的行没有与来自 T2 表的任何匹配行,则查询将左表中的行的列值与来自右表的每个列 值的 NULL 组合。 简而言之, LEFT JOIN 子句返回左表( T1 )中的所有行以及右表( T2 )中匹配的行或 NULL 值以下语句使用 LEFT JOIN 子句查询 products 和 order_items 表中的数据: order_id 列中的 NULL 列表表明相应的产品尚未销售给任何客户
SQL Server右连接 RIGHT JOIN 子句组合来自两个或多个表的数据。 RIGHT JOIN 开始从右表中选择数据并与左表中的行 匹配。 RIGHT JOIN 返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行。 如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用 NULL 值。 以下是 RIGHT JOIN 的语法:0
在此语法中,T1是左表,T2是右表 。 请注意, RIGHT JOIN 和 RIGHT OUTER JOIN 是相同的。 OUTER 关键字是可选的。 下图说明了 RIGHT JOIN 操作:
橙色部分表示返回的结果集。 SQL Server RIGHT JOIN示例 以下语句返回 production.products 表中的产品名称和 sales.order_items 所有 order_id :
|