轉自:https://www.cnblogs.com/langtianya/p/7516045.htmlhtml
一、左外鏈接(Left outer join/ left join)spa
left join是以左表的記錄爲基礎的,左表的記錄將會所有表示出來,而右表只會顯示符合搜索條件的記錄。右表記錄不足的地方均爲NULL.htm
用(+)來實現, 這個+號能夠這樣來理解: + 表示補充,即哪一個表有加號,這個表就是匹配表。因此加號寫在右表,左表就是所有顯示,故是左鏈接。blog
例子:select a.*,b.bname from student_drb a, class_drb b where a.bno=b.bno(+) -------------- 左鏈接,注意: 用(+) 就要用關鍵字whereclass
二、右外鏈接(right outer join/ right join)效率
和left join的結果恰好相反,是以右表爲基礎的, 顯示右表的全部記錄,在加上左表和右表匹配的結果。 左表不足的地方用NULL填充.基礎
用(+)來實現, 這個+號能夠這樣來理解: + 表示補充,即哪一個表有加號,這個表就是匹配表。因此加號寫在左表,右表就是所有顯示,故是右鏈接。select
例子:select a.*,b.bname from student_drb a, class_drb b where a.bno(+)=b.bno ---------------- 右鏈接,注意: 用(+) 就要用關鍵字where搜索
三、全鏈接(full join)查詢
左表和右表都不作限制,全部的記錄都顯示,兩表不足的地方用null 填充。 全外鏈接不支持(+)這種寫法。
四、等值查詢
例子:select a.*,b.bname from student_drb a, class_drb b where a.bno=b.bno
查詢出的結果是左表和右表中bno字段相等的顯示出來。也即出來的結果確定比左、右、全鏈接的結果要少或相等。
五、內聯接查詢 inner join on (與等值查詢結果是同樣的),但效率要比等值查詢高,由於等值查詢是先笛卡爾積,再根據條件查找。
六、交叉查詢cross join (若是須要條件則用where而不用on)
交叉查詢是用的笛卡爾積,效率較慢select * from student_drb cross join class_drb
等價於select * from student_drb,class_drb