sql語言多表查詢

時間 2022-05-23 10:35:07

1樓:

-- 查詢有不及格成績的學生姓名

select t_stud.studname from t_stud inner join t_select on t_stud.studno = t_select.

studno where t_select.score < 60

-- 查詢有選課的學生姓名

select studname , count(studname) from

(select distinct t_stud.studname from t_stud inner join t_select on t_stud.studno = t_select.

studno

) temptable group by studname太多了,需要的話 找我。

2樓:

搞清er圖關係,就不難寫了

舉例所教學生最多的老師

看er關係是 t_stud(學生)--t_select(選課)--t_sub (課程)--t_teacher(教師)

找學生和老師之間的關係涉及4個表關聯

select top 1 count(a.學生) 數量,d.teacherno

from

t_stud a join t_select b on a.studno=b.studno join on t_sub c on b.

subno=c.subno join t_teacher d on c.teacherno=d.

teacherno

group by d.teacherno

order by 數量 desc

建議還是自己練習

3樓:

太簡單了 看哥給你寫 等著

select studname

from t_select, t_stud

where score <60

and t_select.studno = t_stud. studno

查詢有選課的學生姓名

select distinct studname

from t_select, t_stud

where t_select .subno is not null

and t_select.studno = t_stud. studno

(每個姓名只出現一次distinct, group by)

後面跟著選課數量

select count(studno )

from t_select

查詢選修了60歲以上老師所教課程的所有學生

select *

from t_stud, t_select,

(select t_sub. subno

from t_teacher, t_sub

where t_teacher. teacherage>60

and t_teacher. teacherno = t_sub.teacherno

) awhere t_stud. studno= t_select.studno

and a. subno = t_select. subno

其他的類似 都是巢狀查詢+庫函式 沒有別的竅門

4樓:匿名使用者

select stuname from t_stud where stuno in (select stuno from t_select where score<60) /*查詢有不及格成績的學生姓名*/

5樓:邂逅丶永生

北大青鳥二期的資料庫題?

sql查詢多表排序,sql多表分組查詢並排序的問題

select table2.from table2 inner join table1 on table2.table1 id table1.id order by table1.paixu 就像你寫的這樣,直接加過濾條件就可以 但是要在字段前加表名字首以區分兩個表的id欄位 select tabl...

sql多表連線查詢問題,sql 兩表連線查詢的問題

可以,下面的sql文你可以參考一下 select a.id,b.type,b.prid idfrom a a inner join c c on a.id c.id left join b b on a.type b.type and b.prid id c.prid id 完全可以實現,使用左外連...

sql連線查詢跟多表查詢的區別

這倆沒區別 就是寫法不同 這個就如同表1裡有a,b倆欄位一樣 select a,b from 表1 select from 表1 是一樣的 順便給你擴充套件下吧 在資料庫裡還有left join,right join,full join等 當這樣的時候用 select from table1,tab...