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