zoukankan      html  css  js  c++  java
  • oracle 两表关联查询

    oracle 两表关联查询

    CreationTime--2018年7月4日17点27分

    Author:Marydon

    情景描述

      查询学生表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;右表(班级表)为主表。

     相关推荐:

  • 相关阅读:
    解题:POI 2006 Periods of Words
    解题:NOI 2014 动物园
    1483. 最高平均分
    1438. 较大分组的位置(回顾)
    1258. 漂亮子数组
    1903. 部门统计(回顾)
    1509. 柠檬水找零
    1451. 到最近的人的最大距离
    1425. 比较含退格的字符串
    1394. 山羊拉丁文
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9264524.html
Copyright © 2011-2022 走看看