left join 主表
时间: 2024-12-21 17:11:32 浏览: 6
Left join(左连接)操作通常用于合并两个表的数据,保留主表(左边的表)的所有记录,即使右边的关联表中没有匹配的记录也会显示NULL值。以下是关于left join的一个基本示例:
假设我们有两个表,一个是`orders`(订单),另一个是`customers`(客户信息):
1. 正确理解left join[^1]:
```sql
SELECT orders.order_id, customers.customer_name
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;
```
这里,`orders`是主表,如果某个订单没有对应的客户信息,customer_name列就会显示为NULL。
2. 特殊情况:
如果你想查找那些没有对应客户信息的订单,可以这样写:
```sql
SELECT orders.order_id
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id
WHERE customers.customer_id IS NULL;
```
这里的where子句过滤的是右表`customers`,但因为是针对left join,MySQL并不会把它转换成普通的JOIN,仍然保持左表驱动的执行顺序。
阅读全文