這一節講解下
sql中join的使用,join指令來用來多表查詢,它可以實現將多個**連線起來,有如下幾種使用方法:
1. 左連線
left join或left outer join
2.右連線 right join或right outer join
3.全連線 full join或full outer join
4.內連線inner join
5.交叉連線cross join
6.自連線
下面舉例一一說明
假如我們有
tb_employeeinfo和
tb_employeesalary表
left join(左連線)是由左向外連線的結果集包括left join子句指定 的左表的所有行,如果左表的某行在右表沒有相匹配的行,則在右表 相關聯結果集行中的所有選擇列表為null
例:sql 語句:select
*from tb_employeeinfo ileft
outer
join tb_employeesalary s on i.employeeid=s.employeeid;
輸出結果:
右連線)
是由右向外連線,它剛好與
leftjoin
相反,如果右表的某行在左表沒有相匹配的行,則在左表相關聯結果集行中的所有選擇列表為
null
sql
語句:select
*from tb_employeeinfo i right
outer
join tb_employeesalary son i.employeeid=s.employeeid;
輸出結果:
全連線)
是外部連線返回左表和右表的所有行。如果某行在另一表沒有匹配的值,則為
null
sql語句:select i.employeeid, s.employeesalaryfrom tb_employeeinfo i full
join tb_employeesalary son i.employeeid=s.employeeid;
輸出結果:
內連線)
匹配左表和右表共有的列,才顯示出來,否則不顯示,即取它們的交集
sql語句:select i.employeeid, s.employeesalary from tb_employeeinfo i inner
join tb_employeesalary son i.employeeid=s.employeeid;
輸出結果:
交叉連線
)返回左表的所有行,即左表的每一行與右表的所有行進行連線組合。也就是所謂的稱笛卡爾積(值為
table1*table2
,這是笛卡爾積的計算方法)。
sql語句:select i.employeename, s.employeesalaryfrom tb_employeeinfo i cross
join tb_employeesalary s where s.employeesalaryis
notnull;
輸出結果:
自連線)
是使用自身表當作另乙個表來連線,即是自己連線自己
sql 語句:
select
*from tb_employeeinfo;
這就是乙個簡單的 自連線
輸出結果:
演算法(二十五)
1 給定兩個不字串,求出最長公共子串行的長度。int longestpublicsubsequence string x,string y else return math.max longestpublicsubsequence x.substring 1 y.substring 0 longes...
Effective C 之二十五
要點 提供不會丟擲異常的swap函式。swap自stl引入後就成為異常安全 exception safe 程式設計的基石。在條款11避免自賦值時已談到過。stl中swap的預設實現是通過臨時變數實現交換。但是對某些型別這是很低效的,例如pimpl只需要交換指標即可。之後,meyers提出在std命名...
Linux基礎(二十五)
進入linux字元介面方式有字元介面 圖形介面下的終端以及虛擬控制台等方式。在字元介面下,虛擬控制台的選擇可以通過按下 alt 鍵和1個功能鍵來實現,功能鍵通常為f1 f6鍵。比如使用者登入後,按下 alt f2 鍵,使用者可以看 login 提示符,說明使用者進入了第2個虛擬控制台。然後只需利用按...