數據庫連接:INNER JOIN 與 OUTER JOIN 的比較
在數據庫操作中,連接操作是組合多個表數據的關鍵。 INNER JOIN 和 OUTER JOIN 是兩種基礎的連接類型。本文將探討它們的關鍵區別以及實際應用。
INNER JOIN:交集
INNER JOIN 選擇在不同表中的兩個或多個列具有匹配值的那些行。從概念上講,它得到兩個集合的交集,用維恩圖的重疊部分錶示。只有同時存在於兩個表中的行才會包含在輸出中。
OUTER JOIN:並集
與 INNER JOIN 不同,OUTER JOIN 包含指定表中的所有行,無論它們在其他表中是否有匹配項。此操作有效地創建了一個並集,用維恩圖的組合區域表示。
OUTER JOIN 的類型
OUTER JOIN 又分為三種類型:
實際示例
考慮以下包含客戶及其訂單數據的表:
Customer (id, name)
Orders (id, customer_id, product)
INNER JOIN:
SELECT *
FROM customer
INNER JOIN orders ON customer.id = orders.customer_id;
此查詢將只返回下過訂單的客戶。
LEFT OUTER JOIN:
SELECT *
FROM customer
LEFT OUTER JOIN orders ON customer.id = orders.customer_id;
此查詢將返回所有客戶,包括沒有訂單的客戶,訂單信息將為 NULL 值。
RIGHT OUTER JOIN:
SELECT *
FROM customer
RIGHT OUTER JOIN orders ON customer.id = orders.customer_id;
此查詢將返回所有訂單,包括 Customer 表中不存在的客戶下的訂單,客戶信息將為 NULL 值。
FULL OUTER JOIN:
SELECT *
FROM customer
FULL OUTER JOIN orders ON customer.id = orders.customer_id;
此查詢將返回所有客戶和所有訂單,用 NULL 值填充缺失的匹配項。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3