在本教學中,將學習如何使用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數據分組