天天看點

sql 一段時間内相同的隻統計一次_sql—多表查詢

1、表的加法

select`.... from 表1 union select ...... from 表2;

sql 一段時間内相同的隻統計一次_sql—多表查詢

union all 會保留兩個表的重複行

sql 一段時間内相同的隻統計一次_sql—多表查詢

2、表的聯結

(1)交叉連接配接(cross join)

(2)内聯結(inner join): 保留兩個表相同部分

(3)左聯結(left join):保留左邊表的全部和兩個表相同的部分

(4)右聯結(left join):保留右邊表的全部和兩個表相同的部分

(5)全聯結(mysql不支援)

各種聯結形式總結如下:

sql 一段時間内相同的隻統計一次_sql—多表查詢

圖檔來源:猴子知乎Live講座《從零學會SQL:多表查詢》

三、如何用sql解決業務問題

思路:翻譯成大白話(了解業務需要解決什麼問題)->寫出分析思路->寫出對應sql子句

例題

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

sql 一段時間内相同的隻統計一次_sql—多表查詢

圖檔來源:猴子知乎Live講座《從零學會SQL:多表查詢》

sql 一段時間内相同的隻統計一次_sql—多表查詢

2、查詢平均成績大于85的所有學生的學号、姓名和平均成績

sql 一段時間内相同的隻統計一次_sql—多表查詢

圖檔來源:猴子知乎Live講座《從零學會SQL:多表查詢》

sql 一段時間内相同的隻統計一次_sql—多表查詢

3、查詢學生的選課情況:學号,姓名,課程号,課程名稱(三表聯結)

sql 一段時間内相同的隻統計一次_sql—多表查詢

圖檔來源:猴子知乎Live講座《從零學會SQL:多表查詢》

sql 一段時間内相同的隻統計一次_sql—多表查詢

四、case表達式

case when<判斷表達式>then<表達式>

when<判斷表達式>then<表達式>

when<判斷表達式>then<表達式>

..... else <表達式>

end

例題:

1、查詢出每門課程的及格人數和不及格人數

sql 一段時間内相同的隻統計一次_sql—多表查詢

圖檔來源:猴子知乎Live講座《從零學會SQL:多表查詢》

sql 一段時間内相同的隻統計一次_sql—多表查詢

2、使用分段[100-85],[85-70],[70-60],[<60]來統計各科成績,分别統計各分數段人數,課程号,課程名稱。

sql 一段時間内相同的隻統計一次_sql—多表查詢

圖檔來源:猴子知乎Live講座《從零學會SQL:多表查詢》

五、練習(sqlzoo)

sql 一段時間内相同的隻統計一次_sql—多表查詢
sql 一段時間内相同的隻統計一次_sql—多表查詢
sql 一段時間内相同的隻統計一次_sql—多表查詢
sql 一段時間内相同的隻統計一次_sql—多表查詢
sql 一段時間内相同的隻統計一次_sql—多表查詢
sql 一段時間内相同的隻統計一次_sql—多表查詢
sql 一段時間内相同的隻統計一次_sql—多表查詢