--测试代码
--建立测试数据
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可以使用多次吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)