您的位置:首页 > 数据库

SQL语句(inner join,left out join,right out join三者的不同用法)

2013-06-16 12:45 651 查看
leftjoin:左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
rightjoin:右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
innerjoin:内连接,又叫等值连接,只返回两个表中连接字段相等的行。
fulljoin:外连接,返回两个表中的行:leftjoin+rightjoin
crossjoin:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

declare@atable(aint,bint)
declare@btable(aint,bint)

insert@avalues(1,1)
insert@avalues(2,2)
insert@bvalues(1,1)
insert@bvalues(3,3)
select*from@a
select*from@b
--左:
select*from@aAaleftjoin@bBbonAa.a=Bb.a
--右:
select*from@aAarightjoin@bBbonAa.a=Bb.a
--内
select*from@aAainnerjoin@bBbonAa.a=Bb.a
--外:
select*from@aAafulljoin@bBbonAa.a=Bb.a
--交叉连接
select*from@acrossjoin@b


select*froma,bwherea.id=b.id---等值连接
select*fromainnerjoinbona.id=b.id-----内连接
内连接与等值连接效果是相同的,执行效率也是一样的。
只不过内连接是由SQL1999规则定的书写方式,其实这两个是一样的。
看了就明白了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: