oracle 两表关联查询 202518616编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

oracle 两表关联查询

Created by Marydon on 2018-07-04 17:51

情景描述

  查询学生表student,sname,sex,age信息及所在班级clazz表

1.使用左连接

select sname, sex, age, cname
  from student t1
  left join clazz t2
    on t1.cid = t2.cid;

2.使用(+),oracle独有

select sname, sex, age, cname
  from student t1, clazz t2
 where t1.cid = t2.cid(+);

3.from后面跟两张表

select sname, sex, age, cname
  from student t1, clazz t2
where t1.cid = t2.cid;

4.作为主表的查询字段

select sname,
       sex,
       age,
       (select cname from clazz t2 where t1.cid = t2.cid) cname
  from student t1;

小结

  前2种方式,是左连接的方式实现,学生表作为主表,当学生表中的班级cid在班级表中找不到时,班级名称cname填充内容为空;

  后2种方式,只查询出2表均能够匹配到的数据,学生表的数据不一定能查出所有记录。

拓展

  只有Oracle数据库可以使用(+)来代替左连接和右连接;

  "(+)"在"="右侧,表示的是:左连接,如:t1.cid = t2.cid(+);左表(学生表)为主表;

  "(+)"在"="左侧,表示的是:右连接,如:t1.cid(+) = t2.cid;右表(班级表)为主表。

 

 相关推荐:

 

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(18614)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2017-07-04 chrome 谷歌浏览器插件损坏
2017-07-04 chrome 禁止自动更新
2017-07-04 chrome 如何官网下载谷歌浏览器离线安装包
2017-07-04 chrome打包程序
点击右上角即可分享
微信分享提示