数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL联合查询(内联、左联、右联、全联)的语法


发布日期:2022年01月22日
 
SQL联合查询(内联、左联、右联、全联)的语法

概述

联合查询效率较高举例子来说明联合查询内联inner join 左联left outer join 右联right outer join 全联full outer join 的好处及用法

联合查询效率较高以下例子来说明联合查询(内联左联右联全联)的好处

T表结构
(用户名密码)

userid
(int)

username
varchar(

password
varchar(

jack

jackpwd

owen

owenpwd

T表结构
(用户名密码)

userid
(int)

jifen
varchar(

dengji
varchar(

第一内联(inner join)

如果想把用户信息积分等级都列出来那么一般会这样写select * from T T where Tuserid = Tuserid(其实这样的结果等同于select * from T inner join T on Tuserid=Tuserid )

把两个表中都存在userid的行拼成一行(即内联)但后者的效率会比前者高很多建议用后者(内联)的写法

SQL语句select * from T inner join T on Tuserid=Tuserid

运行结果

Tuserid

username

password

Tuserid

jifen

dengji

jack

jackpwd

第二左联(left outer join)

显示左表T中的所有行并把右表T中符合条件加到左表T中;右表T中不符合条件就不用加入结果表中并且NULL表示

SQL语句select * from T left outer join T on Tuserid=Tuserid

运行结果

Tuserid

username

password

Tuserid

jifen

dengji

jack

jackpwd

owen

owenpwd

NULL

NULL

NULL

第三右联(right outer join)

显示右表T中的所有行并把左表T中符合条件加到右表T中;左表T中不符合条件就不用加入结果表中并且NULL表示

SQL语句select * from T right outer join T on Tuserid=Tuserid

运行结果

Tuserid

username

password

Tuserid

jifen

dengji

jack

jackpwd

NULL

NULL

NULL

第四全联(full outer join)

显示左表T右表T两边中的所有行即把左联结果表+右联结果表组合在一起然后过滤掉重复的

SQL语句select * from T full outer join T on Tuserid=Tuserid

运行结果

Tuserid

username

password

Tuserid

jifen

dengji

jack

jackpwd

owen

owenpwd

NULL

NULL

NULL

NULL

NULL

NULL

总结关于联合查询效率的确比较高种联合方式如果可以灵活使用基本上复杂的语句结构也会简单起来种方式是)Inner join )left outer join )right outer join )full outer join

上一篇:SQL2005CLR函数扩展-繁简转换的实现代码

下一篇:sql实现多字段求和并查询