連線可分為以下幾類:
內連線。(典型的連線運算,使用像 = 或 <> 之類的比較運算子)。包括相等連線和自然連線。
內連線使用比較運算子根據每個表共有的列的值匹配兩個表中的行。例如,檢索 students 和 courses 表中學生標識號相同的所有行。
外連線。外連線可以是左向外連線、右向外連線或完整外部連線。
在from子句中指定外連線時,可以由下列幾組關鍵字中的一組指定:
left join 或 left outer join。
左向外連線的結果集包括left outer子句中指定的左表的所有行,而不僅僅是連線列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值。
right join 或 right outer join。
右向外連線是左向外連線的反向連線。將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值。
full join 或 full outer join。
完整外部連線返回左表和右表中的所有行。當某行在另乙個表中沒有匹配行時,則另乙個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的資料值。
現有三張表,book(id,isbn,name),student(id,name,stuno),borrow(id,isbn,stuno)。三張表的設計檢視如下:
各表資料如下:
問題:使用左連線查詢出每個學生的借書數量
sql查詢語句:
select s.id 編號,s.`name` 姓名,s.stuno 學號,count(b.isbn) 借書數量 from student s left
join borrow b on b.stuno=s.stuno group
by s.stuno order
by s.id asc
查詢結果如圖:
查詢結果
完結 2023年8月22日
sql 左連線 left join 全連線
b 1 左連線 b 寫法 color green b from b color table a color green left join color table b color green on color conditions sql查詢時,即針對 這個鏈結的集合 table a color g...
多次使用 left join 左連線 多個表
b 1 product version 2 p category 3 p category product b quote select b pc.b name as 產品類別 b pv.b product id 產品id pv.version id as 版本id pv.name as 產品名稱 ...
left join 左表資料重複問題
9 比如左邊是公司員工表member,每個員工都是唯一的 右邊是工資表salary,每個人都是有多個工資的 張三有5條工資記錄 select m.name,s.salary from member m left join salary s on m.m id s.m id當右表的資料是3條的時候,查...