面试 left join/right join/inner join区别
left join
即左连接,查出来的结果显示左边表的所有数据,然后右边表显示的是和左边表有交集部分的数据。
比如a表左连接b表,查出来的结果显示a表的所有数据和b表中与a表有交集的数据。
举个例子
一张用户表,包含两个用户及其角色id;一张角色表,包含两个角色。
现通过角色表左连接用户表进行查询,因为右表中与左表有交集的只有role_id为1的情况,因此在第三行查询为空
right join
即右连接,查出来的结果显示右边表的所有数据,然后左边表显示的是和右边表有交集部分的数据。
比如a表右连接b表,查出来的结果显示b表的所有数据和a表中与b表有交集的数据。
举个例子
现通过用户表右连接角色表进行查询,因为右表中与左表有交集的只有role_id为1的情况,因此在第三行查询为空
inner join
inner join可简写为join,即内连接,表示查询出的结果为两个表的交集部分
举个例子
用户表内连接角色表