6DQL之mysql多表查詢語句select
阿新 • • 發佈:2021-01-10
1小於100人城市所在國家的國土面積(城市名,國家名,國土面積)
先從城市表中查出小於100人的城市名和國家程式碼
然後通過程式碼查詢國家名稱和國土面積
select cityname,countrycode from world.city where pipulation<100; select countryname,surfacearea from world.country where code='PCN'
如果我想用一條語句實現聯表查詢,傳統方法如下(不推薦):
select:要查詢的內容
from:從哪裡查詢
where:宣告兩張表的關係
on:判斷條件
select city.name,country.name,country.surfacearea from city,country where city.countrycode=country.code and city.population<100;
上面的需要還可以用內聯的方法實現聯表查詢(推薦):
select:要查詢的內容
from..join:連線兩張表
on:宣告兩張表的關係
where:要查詢的條件
select country.name,city.name,country.surfacearea
from city jion country
on city.countrycode=country.code
where city.ppulation<100;
例項:
查詢oldguo老師和他教的課程名稱:
select teacher.tname,course.cname from teacher join course on teacher.tno=course.cno where tacher.tname='oldguo';
統計一下每門課程的總成績:
select course.cname,sum(sc.score)
from course join sc
on coursr.cno=sc.cno;
group by course.cno,course.cname