SQL語句查詢技巧 如何多表查詢
阿新 • • 發佈:2019-01-27
tip:聚合函式只能用在select或者having條件之後。
用limit取代子查詢
適用於查詢最大,最小值的情況。比如
查詢Score表中的最高分的學生學號和課程號。
可以先查出最高分的的分值然後再條件查詢
select
sno,
cno
from score
where degree = (select max(degree)
from score);
用limit取代之後:
select
sno,
cno
from score
order by degree
limit 0, 1;
免去了子查詢,效能更高,更簡潔。
多表查詢技巧
要想進行多表查詢,先生成表關係。
然後看條件
比如:#查詢“張旭“教師任課的學生成績。
要查詢的是 成績那我們就
select degree
通過誰查成績呢,通過 教師 查成績,從表關係可以看出,從教師到成績需要經過3張表。那我們就
from score s, course c, teacher t
既然 合併表,就要去笛卡兒積
where s.cno = c.cno and t.tno = c.tno
最後加上條件 教師的名稱為“張旭”
and tname='張旭'
最後合併的語句就是
select degree from score s, course c, teacher t where s.cno = c.cno and t.tno = c.tno and tname='張旭'
查詢完畢。
簡單SQL多表查詢基本都是這個套路。