從資料庫中查詢資料時,會經常使用到多張表的資料,有些資料需要從兩張或多張表中共同獲取,
舉個例子,這里有兩張表格,分別是學生資訊表(表A)、學生成績表(表B),
| stunum | stuname | major | age |
|---|---|---|---|
| 20200101 | 張三 | 軟體工程 | 18 |
| 20200102 | 李莉 | 計算機科學與技術 | 19 |
| 20200103 | 王五 | 資訊技術 | 20 |
| 20200104 | 張小 | 軟體工程 | 20 |
| stunum | stumname | math | english | shujujiegou |
|---|---|---|---|---|
| 20200101 | 張三 | 67 | 80 | 60 |
| 20200102 | 李莉 | 80 | 85 | 89 |
| 20200103 | 王五 | 75 | 75 | 90 |
| 20200104 | 張小 | 75 | 75 | 95 |
例一 假設我們要查詢專業為轉件工程的同學的各科成績,可以看到專業資訊在表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 | 張三 | 軟體工程 | 67 | 80 | 60 |
|---|---|---|---|---|---|
| 20200104 | 張小 | 軟體工程 | 75 | 75 | 95 |
這就是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 | 李莉 | 計算機科學與技術 | 19 | 89 |
|---|---|---|---|---|
| 20200103 | 王五 | 資訊技術 | 20 | 90 |
| 20200104 | 張小 | 軟體工程 | 20 | 95 |
這就是right john的用法,以右表基礎來查詢,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/118656.html
標籤:其他
