4

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

 2 years ago
source link: https://blog.51cto.com/wjw1014/5411536
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

原创

超级无敌炫酷暴龙战神 2022-06-23 13:06:48 ©著作权

文章标签 联合查询 sql语句 git 文章分类 其它 系统/运维 阅读数159

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

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

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

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

第一:内联(inner join)

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

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

  SQL语句:select * from T1 inner join T2 on T1.userid=T2.userid

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

第二:左联(left outer join)

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

  SQL语句:select * from T1 left outer join T2 on T1.userid=T2.userid

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

第三:右联(right outer join)

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

  SQL语句:select * from T1 right outer join T2 on T1.userid=T2.userid
SQL联合查询(内联、左联、右联、全联)的语法_联合查询_04

第四:全联(full outer join)

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

  SQL语句:select * from T1 full outer join T2 on T1.userid=T2.userid

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

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

【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!

【重要说明】本文为本人的学习记录,论点和观点仅代表个人而不代表当时技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!

【Gitee地址】秦浩铖:​ ​https://gitee.com/wjw1014​

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK