概述
联合查询效率较高举例子来说明联合查询内联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