left join 小表驱动大表 的示例
时间: 2023-07-08 13:55:32 浏览: 104
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
假设有两张表,一张是订单表 orders,另一张是客户表 customers。订单表 orders 包含订单号(order_id)、客户编号(customer_id)和订单金额(amount)三个字段,客户表 customers 包含客户编号(customer_id)和客户姓名(name)两个字段。
现在需要查询所有订单的订单号、客户姓名和订单金额,可以使用 left join 小表驱动大表的方法来完成,具体的 SQL 语句如下:
```
SELECT o.order_id, c.name, o.amount
FROM orders o LEFT JOIN customers c ON o.customer_id = c.customer_id;
```
这条 SQL 语句中,我们使用了 left join 小表驱动大表的方法,将客户表 customers 作为小表,将订单表 orders 作为大表。首先,系统会将客户表 customers 的数据加载到内存中,然后对于订单表 orders 中的每一行记录,都会在客户表 customers 中查找对应的客户姓名(name)并返回查询结果。由于客户表 customers 的数据已经被加载到内存中,因此查询效率较高。
阅读全文