在MySQL中,LEFT JOIN用于將兩個表進行連接,并返回左表中的所有行,以及與右表匹配的行。LEFT JOIN基于兩個表之間的某個條件進行連接,通常是兩個表之間的外鍵關系。
語法如下:
SELECT 列名 FROM 表A
LEFT JOIN 表B ON 表A.列名 = 表B.列名;
其中,表A是左表,表B是右表,列名是連接兩個表的條件。
LEFT JOIN的工作方式是,它從左表中選擇所有的行,并對于每一行,在右表中查找與之匹配的行。如果右表中沒有匹配的行,則返回NULL值。
下面是一個示例,假設有兩個表:訂單表(order)和客戶表(customer),它們之間有一個外鍵關系:
訂單表(order):
order_id | customer_id | order_date
-----------------------------------
1 | 1 | 2022-01-01
2 | 2 | 2022-02-01
3 | 1 | 2022-03-01
客戶表(customer):
customer_id | customer_name
---------------------------
1 | Alice
2 | Bob
3 | Charlie
我們可以使用LEFT JOIN查詢所有訂單,并將訂單表中的customer_id與客戶表中的customer_id進行匹配,返回訂單信息以及客戶信息(如果有匹配的話):
SELECT order_id, order_date, customer_name
FROM order
LEFT JOIN customer ON order.customer_id = customer.customer_id;
查詢結果:
order_id | order_date | customer_name
-------------------------------------
1 | 2022-01-01 | Alice
2 | 2022-02-01 | Bob
3 | 2022-03-01 | Alice
注意:在LEFT JOIN中,如果右表中的某一行與左表中的多行匹配,則會返回多行結果。