数据库 inner join 和 left join 和right join 的区别

数据库 inner join 和 left join 和right join 的区别,第1张

--测试代码

--建立测试数据

create

table

#ta1(id

integer

,

aa

char(1))

create

table

#ta2(id

integer

,

aa

char(1))

insert

into

#ta1

select

1,'a'

insert

into

#ta1

select

2,'b'

insert

into

#ta2

select

1,'a'

insert

into

#ta2

select

3,'b'

insert

into

#ta2

select

4,'c'

-----------------------------------

--完全测试

select

aid,aaa,bid,baa

from

#ta1

a

inner

join

#ta2

b

on

aid=bid

/结论:

左表的id必须完全跟右表的id一致,不匹配的不显示

/

--左链接测试

select

aid,aaa,bid,baa

from

#ta1

a

left

join

#ta2

b

on

aid=bid

/

结论:

以左表作为基准,右表能匹配上的就显示出来,不匹配的就显示成NULL,

记录个数满足左表

/

--右连接测试

select

aid,aaa,bid,baa

from

#ta1

a

right

join

#ta2

b

on

aid=bid

/

和左连接一样,只是以右表为基准了

/

看来你还没学到这里,join在sql语句中的用法是做连接,而连接就是基于这些表之间的共同字段,把来自两个或多个表的行结合起来。常见的一般是inner join、left join、right join。直接写join的代表的是inner join(内连接)。具体的就不在这里说了,你在百度上搜sql连接就有很多的博客论坛之类的会详细讲解,望采纳。

select

b1username as userNameCome,

b2username as userNameTo,

ainfo

from A a

left join B b1 on auserIdCome=b1userId

left join B b2 on auserIdTo=b2userId;

一般来讲,关系数据库中需要用指定连接方式(例如指定内连接、左右连接、全外连接)来组合、筛选来自多张表(包括1张表自连接)或查询或视图的信息时就要使用join连接。

不需要连接、或者需要连接多表,但是不指定连接方式的连接(如在where 子句里规定连接条件)、子查询(exists子查询、in子查询等)就不用join。

以上就是关于数据库 inner join 和 left join 和right join 的区别全部的内容,包括:数据库 inner join 和 left join 和right join 的区别、数据库中这几个join语句什么意思,能详细解释下吗、mysql数据库关联关键字join可以使用多次吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9372140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存