LEFT JOIN
是 SQL 中一種用于連接兩個或多個表的查詢操作,其特點是從左表(主表)返回所有的記錄,即使右表中沒有匹配的記錄。當右表中有匹配的記錄時,結果集中將包含左表和右表中所有相關記錄的字段。這種連接方式在處理需要從多個表中獲取數據時非常有用。
在不同表結構中應用 LEFT JOIN
的基本語法如下:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
這里,table1
是左表,table2
是右表,column_name
是用于連接兩個表的列名。在實際應用中,表結構和列名可能會有所不同。以下是一些不同表結構中 LEFT JOIN
的應用示例:
假設有兩個簡單的表:employees
和 departments
,它們的結構如下:
employees 表
id | name | department_id |
---|---|---|
1 | Alice | 1 |
2 | Bob | NULL |
3 | Carol | 2 |
departments 表
id | name |
---|---|
1 | HR |
2 | Finance |
使用 LEFT JOIN
查詢員工及其所屬部門:
SELECT employees.name AS employee_name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
結果集:
employee_name | department_name |
---|---|
Alice | HR |
Bob | NULL |
Carol | Finance |
假設有三個表:orders
、customers
和 products
,它們的結構如下:
orders 表
id | customer_id | product_id | quantity |
---|---|---|---|
1 | 1 | 1 | 2 |
2 | 2 | 3 | 1 |
customers 表
id | name |
---|---|
1 | Alice |
2 | Bob |
products 表
id | name | price |
---|---|---|
1 | Product A | 10 |
2 | Product B | 20 |
3 | Product C | 30 |
使用 LEFT JOIN
查詢訂單信息以及對應的客戶和產品信息:
SELECT orders.id AS order_id, customers.name AS customer_name, products.name AS product_name, orders.quantity
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.id
LEFT JOIN products ON orders.product_id = products.id;
結果集:
order_id | customer_name | product_name | quantity |
---|---|---|---|
1 | Alice | Product A | 2 |
2 | Bob | Product C | 1 |
在這些示例中,LEFT JOIN
被用于連接具有不同結構的表,以獲取所需的數據。