內連接
在進行跨表內連接查詢數據時,查詢結果只返回符合查詢條件的數據;
跨表內連接查詢的結果和使用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子句中表的順序轉換為右外連接,因此,兩種類型的外部連接可以互換使用,用哪一種純粹是看誰更方便
