left join 与right join 与 join on 的区别

在工作中经常看见left join 的,我着来总结下

准备表:

test

在这里插入图片描述

test1

在这里插入图片描述

left join
  • 左连接查询是以左表为基表,其中 on 是条件。有两张表或者多张表中有相同的字段才会查询出来。
    例如:
select t.username ,t.pssword ,t2.u_id ,t2.name,t2.code
from test t left join test1 t2 
on t.u_id =t2.u_id group  by t.username  order by  t.u_id  desc 

这个sql查出来的结果是:

这个是test为主表,然后test1为测表。

right on

首先 ,右连接是以右边为基表,on 的条件不管有没有,都会以右连接的表为基表。
例如:

select t.username ,t.pssword ,t2.u_id ,t2.name,t2.code 
from test t right join test1 t2 on
t.u_id =t2.u_id group by t.username  order by t.u_id  desc 

这个sql查出来的结果:
在这里插入图片描述
这个是test1为主表,然后test为测表。

join on
  • 首选连接,这个把关联的数据都连接。
    例如:
select t.username ,t.pssword ,t2.u_id ,t2.name,t2.code 
from test t join test1 t2 on
t.u_id =t2.u_id group by t.username  order by t.u_id  desc 

例如:
在这里插入图片描述
这个是把关联的数据都展示了。

总结:

left join左连接,他是主表在左表,右表没有的数据会显示null;
right join右连接,他是主表在右表,左表没有的数据会显示null;
join  on 全连接,他是连接你关联的表 on 后面跟条件

我的观点是用join on这个不会产生笛卡儿积,那俩个不会去重,会产生笛卡尔积,我也不知道明白,请网友知道的留言,学习学习。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值