資料庫—查詢語句中left john怎麼用?以及right john怎麼用?

2020-09-24 12:00:52

從資料庫中查詢資料時,會經常使用到多張表的資料,有些資料需要從兩張或多張表中共同獲取。
舉個例子,這裡有兩張表格,分別是學生資訊表(表A)、學生成績表(表B)。

stunumstunamemajorage
20200101張三軟體工程18
20200102李莉電腦科學與技術19
20200103王五資訊科技20
20200104張小軟體工程20
stunumstumnamemathenglishshujujiegou
20200101張三678060
20200102李莉808589
20200103王五757590
20200104張小757595

例一 假設我們要查詢專業為轉件工程的同學的各科成績,可以看到專業資訊在表A,成績資訊在表B,如果我們要查詢的話,要以表A為基礎,因為首先要查到專業為軟體工程專業的學生,這時我們把表A作為左表,用左連線來查詢。
查詢語句為:

select  A.stunum,A.stuname,A.major,B.math,B.english,B.shujujiegou #查詢A表的學號、A表的姓名、A表的專業、以及B表數學、英語、資料結構成績。
from A left john B #從A與B的左連線表中
where major="軟體工程" and  A.stunum=B.stunum #條件是專業為軟體工程且學號相等
order by A.stumun asc; 按學號升序排列

查詢結果為,從左到右欄位分別為學號、姓名、專業、數學分數、英語分數、資料結構分數。

20200101張三軟體工程678060
20200104張小軟體工程757595

這就是left john的用法,以左表為基礎來查詢。

例二 假設要查詢資料結構分數在80分以上的同學的學號,姓名、專業、年齡。從表中可以看到成績在表B中,所以要先從表B中查詢到資料結構分數大於80分的同學,然後再去表A查詢專業、年齡欄位。
查詢語句為:

select A.stunum,A.stuname,A.major,A.age,B.shujujiegou #查詢學號、姓名、專業、年齡、資料結構分數
from A right john B #從A與B的右連線表中
where B.shujujiegou >'80'and A.stunum=B.stunum #條件是資料結構分數大於80且A與B的學號相等
order by B.shujujiegou asc;#按資料結構分數升序排列

查詢結果為,從左到右欄位分別為學號、姓名、專業、年齡、資料結構分數。

20200102李莉電腦科學與技術1989
20200103王五資訊科技2090
20200104張小軟體工程2095

這就是right john的用法,以右表基礎來查詢。