MySQL 外部聯結 內連接、左右外連接辨析


內連接

在進行跨表內連接查詢數據時,查詢結果只返回符合查詢條件的數據;
跨表內連接查詢的結果和使用where的多表查詢結果相同,其實就是普通的查詢,沒啥好說的

-- 語法:
  SELECT 別名1.字段名1,別名2.字段名2
  FROM 庫名.表名1 [AS] 別名1
  INNER JOIN 庫名.表名2 [AS] 別名2
  ON 別名1.字段名3=別名2.字段名3;

外連接

多個聯結將一個表中的行和另一個表中的行相關聯。但有時要包含沒有關聯行的那些行,例如:

  • 對每個客戶下了多少訂單進行計數,包括沒有訂單的客戶;
  • 列表所有產品的訂單數量,包括沒有訂單的產品;
  • 計算平均銷售量,包括沒有訂單的客戶;

這類情況聯結包含了那些在相關表中沒有關聯行的行,這種類型的聯結就叫外部聯結

對於這個簡單的內部聯結:檢索所有客戶及其訂單

1 SELECT customers.cus_id, orders.order_num
2 FROM customers
3 INNER JOIN orders
4 ON customers.cus_id=orders.cus_id

若用外部聯結,即可為了檢索所有客戶,包括那些沒有訂單的客戶

SELECT customers.cus_id, orders.order_num
FROM customers
LEFT OUTER JOIN orders
ON customers.cus_id=orders.cus_id

左連接和右連接

它們之間唯一的差別就是所關聯的表的順序不同。實際上,左連接可以通過FROM或WHERE子句中表的順序轉換為右外連接,因此,兩種類型的外部連接可以互換使用,用哪一種純粹是看誰更方便


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM