最近遇到左連線與外連線的業務,感覺有點模糊,平時用的少,今天小小的總結一些。
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來表示
可以看出全連線是兩邊的都有。
內連線:
selects.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.相同屬性值對應的元組 ...