天天看點

casewhen多條件查詢_SQL多表查詢

一 表的加法(union)

Union

會去除重複資料

select 課程号,課程名稱 from course union select 課程号,課程名稱 from course1;
           
Union all

保留重複資料

select 課程号,課程名稱 from course union all select 課程号,課程名稱 from course1
           

二 表的連結(join)

cross join 笛卡爾積 :所有行可能的排列組合

内連結(inner join)

隻取出符合條件的行交叉連結

select a.學号, b.課程号 
from student as a inner join score as b 
on a.學号= b.學号;
           
外連結: 左連接配接 右連結

左/右連結 以左表/右表為基表

左連接配接 取出左表,再取出右表所有複合條件的行進行連結。

右連結 同理

select a.學号, b.課程号 
from student as a left join score as b 
on a.學号= b.學号
where b.學号 is null;
           

全連結 full join

MySQL沒有該功能。取出所有行,兩表無法match的地方null

casewhen多條件查詢_SQL多表查詢

三 連結應用案例

練習

casewhen多條件查詢_SQL多表查詢

1.查詢出所有學生的學号,姓名,選課數,總成績

學号,姓名 在 student表

選課數 count(distinct課程号) group by 學号 在 score 表

總成績 sum(score) group by 學号 在score表

casewhen多條件查詢_SQL多表查詢

2.

學生的學号,姓名 在student表 按學号分組,平均成績>85:avg(score) group by a.學号

casewhen多條件查詢_SQL多表查詢

3

學号,姓名 在 student 表

學号, 課程号 在score表

課程号,課程名稱在course表

casewhen多條件查詢_SQL多表查詢

四 case when表達式

當有多種情況需要條件判斷的時候需要case when 表達式

casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
練習
casewhen多條件查詢_SQL多表查詢

1

casewhen多條件查詢_SQL多表查詢

2

casewhen多條件查詢_SQL多表查詢

SQLZOO 練習

casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢
casewhen多條件查詢_SQL多表查詢