SQL JOIN之完全用法

2022-10-10 19:39:11 字數 1672 閱讀 4330

join連線組合兩個表中的字段記錄,包括三種: 

inner join表示式:連線組合兩個表中的字段記錄。

left join表示式:連線組合兩個表中的字段記錄,並將包含了left join左邊表中的全部記錄。

right join表示式:連線組合兩個表中的字段記錄,並將包含了right join右邊表中的全部記錄。

inner join設定兩個表相關連的表示式,以連線組合兩個表中的字段記錄。

inner join語法如下:

from 表1 inner join 表2 on 表1.欄位1 比較運運算元 表2.欄位2

兩個表連線的字段,譬如 [表1.欄位1=表2.欄位2],必須具有相同的字段型別,但是欄位名稱不需要相同。

例如,自動編號字段型別可以連線long 的字段型別,但是單精整數字段型別不能連線雙精整數的字段型別。

比較運運算元可為=、<、>、<=、>=、或<>。

join連線的字段,不可以包含memo欄位型別或ole物件型別,否則會發生錯誤。

在乙個join表示式中,可以鏈結多個on子句:

select fields

from 表1 inner join 表2

on 表1.欄位1 比較運運算元 表2.欄位1 and

on 表1.欄位2 比較運運算元 表2.欄位2) or

on 表1.欄位3 比較運運算元 表2.欄位3)

join表示式中,可以為巢狀式:

select fields

from 表1 inner join

(表2 inner join [( ]表3

[inner join [( ] 表x [inner join ...)]

on 表3.欄位3 比較運運算元 表x.欄位x)]

on 表2.欄位2 比較運運算元 表3.欄位3)

on 表1.欄位1 比較運運算元 表2.欄位2

在乙個inner join中,可以包括巢狀式的left join或right join,但是在乙個left join或right join中不能包括巢狀式的inner join。

條件 : 假設在 city 列上聯接 authors 表和 publishers 表。

使用左向外聯接 :

sql 語句 : select a.au_fname, a.au_lname, p.pub_name

from authors a left outer join publishers p

on a.city = p.city

特點 : 不管第二個表中是否有匹配的資料,結果將包含第乙個表中的所有行。

使用右向外聯接 :

sql語句 : select a.au_fname, a.au_lname, p.pub_name

from authors a right outer join publishers p

on a.city = p.city

特點 : 不管第乙個表中是否有匹配的資料,結果將包含第二個表中的所有行。

使用完整外部聯接 :

sql語句 :

select a.au_fname, a.au_lname, p.pub_namefrom authors a full outer join publishers pon a.city = p.city特點:顯示兩個表中的所有行,如果匹配,則寫在一起,不匹配,則各自寫null

CStringList不完全用法

cstringlist是cstring鍊錶,在mfc程式設計中stl之外的另一選擇,用起來更加簡潔.插入資料 addtail addhead 刪除資料 removeall removeat removehead removetail 取得元素個數 getcount 取得某個元素值 getat cst...

Oracle之完全解除安裝

1.進入計算機管理,在服務中,找到oracle開頭的所有服務,右擊選擇停止 2.在開始選單中,找到universal installer,執行oracle universal installer,單擊解除安裝產品 3.在產品清單視窗中,單擊全部展開,除了oradb11g home1外,勾選其他專案,...

完全揹包之飯卡

電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每種菜的 以及卡上的餘額,問最少...