在本教程中,将学习如何使用SQL Server RIGHT JOIN子句查询来自两个表的数据。
SQL Server RIGHT JOIN子句简介
RIGHT JOIN子句组合来自两个或多个表的数据。 RIGHT JOIN开始从右表中选择数据并与左表中的行匹配。 RIGHT JOIN返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行。 如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用NULL值。
以下是RIGHT JOIN的语法:
SELECT 
    select_list
FROM 
    T1
RIGHT JOIN T2 ON join_predicate;
在此语法中,T1是左表,T2是右表。
请注意,RIGHT JOIN和RIGHT OUTER JOIN是相同的。 OUTER关键字是可选的。
下图说明了RIGHT JOIN操作:
橙色部分表示返回的结果集。
SQL Server RIGHT JOIN示例
我们将使用示例数据库中的sales.order_items和production.products表进行演示。

以下语句返回production.products表中的产品名称和sales.order_items所有order_id:
SELECT
    product_name,
    order_id
FROM
    sales.order_items o
    RIGHT JOIN production.products p 
        ON o.product_id = p.product_id
ORDER BY
    order_id;
执行上面查询语句,得到以下结果:

该查询返回了production.products表(右表)中的所有行和sales.order_items表(左表)中的行。 如果产品没有任何销售,则order_id列将为null。
要获取没有任何销售记录的产品,请在上述查询中添加WHERE子句以过滤掉具有销售额的产品:
SELECT
    product_name,
    order_id
FROM
    sales.order_items o
    RIGHT JOIN production.products p 
        ON o.product_id = p.product_id
WHERE 
    order_id IS NULL
ORDER BY
    product_name;
执行上面查询语句,得到以下结果:
下面的图说明了上面的RIGHT JOIN操作:

						上一篇:
								SQL Server连接表
												下一篇:
								SQL Server数据分组
												
						
						
					
					
					