oracle 左連線和外連線

2021-06-07 08:37:31 字數 1404 閱讀 1088

最近遇到左連線與外連線的業務,感覺有點模糊,平時用的少,今天小小的總結一些。

oracle連線

內連線(自然連線):只有兩個表匹配的才能在結果中出現

外連線左連線:顯示左邊的全部和右邊與左邊匹配的部分。

右連線:顯示右邊的全部與左邊與右邊匹配的部分

自連線:連線在一張表中

下面通過例子來說明

1.首先實驗資料兩張表,student,studentclass 中其中classid是關聯字段。

這是兩張表中的資料,可以看出在student表中趙六的班級在studentclass中沒有,在studentclass表中物理班在student表中沒有。

左連線:

可以看出來,左連線只顯示左邊的部分,(+)的另一側位連線的方向,也就是說左邊的是否匹配都會顯示。

當然左連線也可以用left join來表示,這是在9i裡的寫法,

select

s.id, s.name, st.classname

from

student s

left

join studentclass st on (s.classid = st.classid)

右連線:

右連線和左連線是相反的。當然右連線也可以用下列sql

select

s.id, s.name, st.classname

from

student s

right

join studentclass st on (s.classid = st.classid)

全連線

順便說一下全連線,全連線用(+)不能表示,只能用full join來表示

可以看出全連線是兩邊的都有。

內連線:

select

s.id, s.name, st.classname

from

student s, studentclass st

where s.classid = st.classid

Oracle外連線,左外連線,右外連線,內連線簡析

內連線即普通等值連線 select e.ename,e.job,e.sal,d.dname from emp e inner join dept d on e.deptno d.deptno where e.sal 2000 select e.ename e.job,e.sal d.dname fr...

左連線 左外連線 右外連線

在之前,我對mssql中的內連線和外連線所得出的資料集不是很清楚。這幾天重新溫習了一下sql的書本,現在的思路應該是很清楚了,現在把自己的理解發出來給大家溫習下。希望和我一樣對sql的連線語句不太理解的朋友能夠有所幫助。發這麼菜的教程,各位大大們別笑話偶了,呵 d 有兩個表a和表b。表a結構如下 a...

自然連線,外連線,左外連線,右外連線

1.自然連線 結果基於表r和s的笛卡爾乘積,取對應的r和s中相同屬性組都相同的值,同時相同屬性組只保留乙個 先來看圖示,2個表以及自然連線的結果 操作的步驟 1.1找出2個表中相同的屬性組 屬性a加上屬性b 1.2找相同屬性組中,相同的屬性值所對應的元組 相同的屬性值 1.2.相同屬性值對應的元組 ...