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;右表(班級表)為主表。

 

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM