問:查詢每一個學生每一個科目的分數ui
分析:學生姓名來源於students表,科目名稱來源於subjects,分數來源於scores表,怎麼將3個表放到一塊兒查詢,並將結果顯示在同一個結果集中呢?spa
答:當查詢結果來源於多張表時,須要使用鏈接查詢code
關鍵:找到表間的關係,當前的關係是blog
則上面問題的答案是:it
select students.sname,subjects.stitle,scores.score from scores inner join students on scores.stuid=students.id inner join subjects on scores.subid=subjects.id;
結論:當須要對有關係的多張表進行查詢時,須要使用鏈接joinclass
鏈接查詢分類以下:select
在查詢或條件中推薦使用「表名.列名」的語法語法
若是多個表中列名不重複能夠省略「表名.」部分數據
若是表的名稱太長,能夠在表名後面使用' as 簡寫名'或' 簡寫名',爲表起個臨時的簡寫名稱查詢
select students.sname,avg(scores.score) from scores inner join students on scores.stuid=students.id group by students.sname;
select students.sname,avg(scores.score) from scores inner join students on scores.stuid=students.id where students.gender=1 group by students.sname;
select subjects.stitle,avg(scores.score) from scores inner join subjects on scores.subid=subjects.id group by subjects.stitle;
select subjects.stitle,avg(scores.score),max(scores.score) from scores inner join subjects on scores.subid=subjects.id where subjects.isdelete=0 group by subjects.stitle;