mysq inner join 和 left join 的区别
时间: 2023-10-17 16:36:27 浏览: 99
在MySQL中,inner join和left join是两种不同的连接方式,它们的区别如下:
1. Inner join(内连接):在执行inner join时,只返回左表右表都满足匹配条件的数据。也就是说,只有左表和右表中的数据在连接条件上完全匹配的才会被返回。如果某个表中的数据在另一个表中没有匹配的记录,那么这些数据将不会显示出来。
2. Left join(左连接):在执行left join时,返回左表的所有数据,同时也会展示右表中与左表匹配的数据。如果左表中的某条记录在右表中没有匹配的记录,那么右表的对应字段将会显示为NULL。
举个例子,假设我们有两张表,一张是用户表usr,另一张是商品购买记录表order_record。我们以usr表为左表,以usr_id作为连接条件进行inner join和left join,查询两张表中的数据。执行查询语句如下:
1. Inner join:
SELECT usr.`name`, order_record.order_name FROM usr INNER JOIN order_record ON usr.usr_id=order_record.usr_id
这条查询语句将返回usr表和order_record表中usr_id匹配的所有记录,只有当usr表和order_record表中的usr_id都存在匹配的记录时才会显示出来。
2. Left join:
SELECT usr.`name`, order_record.order_name FROM usr LEFT JOIN order_record ON usr.usr_id=order_record.usr_id
这条查询语句将返回usr表的所有记录,同时也会显示出与usr表中usr_id匹配的order_record表中的记录,如果usr表中的某条记录在order_record表中没有匹配的记录,则order_record.order_name字段将显示为NULL。
因此,inner join和left join的区别在于返回数据的范围,inner join只返回左表和右表都满足匹配条件的数据,而left join则返回左表的所有数据同时展示右表符合匹配条件的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Mysql的inner join、left join、right join关键字的使用](https://blog.csdn.net/qq_41477614/article/details/128610864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文