sql中left join、right join、inner join有什么区别?

sql中left join、right join、inner join有什么区别?


森林海
浏览 588回答 4
4回答

茅侃侃

通俗一点就是:left以 left join 左侧的表为主表right 以 right join 右侧表为主表inner join 查找的数据是左右两张表共有的

守着星空守着你

join等价于inner join内连接,是返回两个表中都有的符合条件的行。left join左连接,是返回左表中所有的行及右表中符合条件的行。right join右连接,是返回右表中所有的行及左表中符合条件的行。full join全连接,是返回左表中所有的行及右表中所有的行,并按条件连接。通常情况下,left join肯定比inner join返回的行数多。

人到中年有点甜

left join   :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。SQL语句inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。full join:外连接,返回两个表中的行:left join + right joincross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

RISEBY

left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。full join:外连接,返回两个表中的行:left join + right joincross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。declare @a table(a int,b int)declare @b table(a int,b int)insert @a values(1,1)insert @a values(2,2)insert @b values(1,1)insert @b values(3,3)select * from @aselect * from @b--左:select * from @a Aa left join @b Bb on Aa.a=Bb.a--右:select * from @a Aa right join @b Bb on Aa.a=Bb.a--内select * from @a Aa inner join @b Bb on Aa.a=Bb.a--外:select * from @a Aa full join @b Bb on Aa.a=Bb.a--交叉连接select * from @a cross join @b
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server