数据库 inner join 和 left join 和right join 的区别请说的详细一点,我就这里理解的不够好.最好用代码和返回结果 加点理论,让我了解.

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 10:42:38
数据库 inner join 和 left join 和right join 的区别请说的详细一点,我就这里理解的不够好.最好用代码和返回结果 加点理论,让我了解.
xTn@@-X>U/X@zڴ)M(%PH6QB~ƻ^ ФJKD̜9gvfIn膡yF7PimÚL}sk ಋKgPm ?^]ARztqR,{y >i(B|8hdtW%:;-lR C]dERei+D?r8LR&Gs]ij!ijҀԴX(FKd*!B ̕ޱzFN3-nhqZQB!-Cnr{x?G0eC=Q!V`̼RT1D#\5v|?{Js]sKFJ{OCT}

数据库 inner join 和 left join 和right join 的区别请说的详细一点,我就这里理解的不够好.最好用代码和返回结果 加点理论,让我了解.
数据库 inner join 和 left join 和right join 的区别
请说的详细一点,我就这里理解的不够好.
最好用代码和返回结果 加点理论,让我了解.

数据库 inner join 和 left join 和right join 的区别请说的详细一点,我就这里理解的不够好.最好用代码和返回结果 加点理论,让我了解.
--测试代码
--建立测试数据
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 a.id,a.aa,b.id,b.aa from #ta1 a
inner join #ta2 b on a.id=b.id
/*结论:
左表的id必须完全跟右表的id一致,不匹配的不显示
*/
--左链接测试
select a.id,a.aa,b.id,b.aa from #ta1 a
left join #ta2 b on a.id=b.id
/*
结论:
以左表作为基准,右表能匹配上的就显示出来,不匹配的就显示成NULL,
记录个数满足左表
*/
--右连接测试
select a.id,a.aa,b.id,b.aa from #ta1 a
right join #ta2 b on a.id=b.id
/*
和左连接一样,只是以右表为基准了
*/