SQL 中left joinright joininner join的区别

Posted 泡^泡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 中left joinright joininner join的区别相关的知识,希望对你有一定的参考价值。

区别

  • LEFT JOIN:以左侧表为主,右侧表与其相匹配,匹配不上的记录 ,以null 做替补。
  • RIGHT JOIN:以右侧表为主,左侧表与其相匹配,匹配不上得记录,以null做替补。
  • INNER JOIN:只返回两个表中联接字段相等的记录。

案例

t_user表

t_class表

左连接:
select u.UserID,u.UserName,c.id,c.name from t_user u left join t_classc on c.id = u.UserID
运行结果

右连接:
select u.UserID,u.UserName,c.id,c.name from t_user u RIGHT join t_class c on c.id = u.UserID
运行结果:

内连接:
select u.UserID,u.UserName,c.id,c.name from t_user u inner join t_class c on c.id = u.UserID
运行结果:

where 区别

左连接where只影向右表,右连接where只影响左表。 左连接后的检索结果是显示table1(左表)的所有数据和table2(右表)中满足where 条件的数据。 简言之 Left Join影响到的是右边的表 检索结果。右连接是显示table2(右表)的所有数据和table1(左表)中满足where 条件的数据。 简言之 Right Join影响到的是左边的表。

左连接(一对多)


进行左连接 ,很明显是一对多的情况。
执行结果:

https://blog.csdn.net/xiaowanzi_zj/article/details/123783849

以上是关于SQL 中left joinright joininner join的区别的主要内容,如果未能解决你的问题,请参考以下文章