SELECT A.sno FROM (SELECT sno,score FROM sc WHERE cno=1 )as A, (SELECT sno,score FROM sc WHERE cno=2 )as b WHERE A.score>b.score or A.score = b.score
SELECT sno,AVG(score) FROM sc GROUP BY sno HAVING AVG(score) >60
SELECT A.sno,A.score,cno,B.sname FROM (SELECT sc.sno,score,COUNT(cno) cno FROM sc GROUP BY sc.sno )as A, (SELECT student.sno,sname FROM student) as B WHERE A.sno = B.sno
SELECT A.sno,sum(A.score),count(A.cno),B.sname FROM sc as A,student as B WHERE A.sno = B.sno GROUP BY A.sno
SELECT A.sno,A.score,COUNT(A.cno),B.sname FROM sc as A, student as B WHERE A.sno = B.sno GROUP BY A.cno
/*--四、查詢姓「李」的老師的個數;*/sql
SELECT COUNT(*) FROM teacher where tname like '%李%'
/*--五、查詢沒學過「葉平」老師課的同窗的學號、姓名;*/3d
/*個人回答1*/blog
SELECT distinct A.sno,D.sname FROM (SELECT sno,cno FROM sc ) as A, (SELECT tno FROM teacher WHERE tname='葉平') as B, (SELECT cno,tno FROM course) as C, (SELECT sname,sno FROM student) as D WHERE B.tno != C.tno AND A.cno = C.cno AND A.sno = D.sno
/*個人回答2*/io
SELECT distinct D.sno,D.sname FROM sc as A, teacher as B,course as C,student as D WHERE B.tno != C.tno AND A.cno = C.cno AND A.sno = D.sno AND B.tname = '葉平'
/*個人回答3*/class
SELECT sno,sname FROM student WHERE sno NOT in ( SELECT sno FROM sc WHERE cno in( SELECT cno FROM course WHERE tno in( SELECT tno FROM teacher WHERE tname='葉平' ) ) )
/*--六、查詢同時學過課程1和課程2的同窗的學號、姓名;*/im
/*個人回答1*/d3
SELECT A.sno , C.sname FROM (SELECT sno FROM sc WHERE cno = 1) as A , (SELECT sno FROM sc WHERE cno = 2) as B, (SELECT sno,sname FROM student ) as C WHERE A.sno = B.sno AND A.sno = C.sno
/*個人回答2*/查詢
SELECT sno,sname FROM student WHERE sno in ( SELECT sno FROM sc WHERE cno = 2 and cno in ( SELECT sno FROM sc WHERE cno = 1 ) )
/*--七、查詢學過「葉平」老師所教全部課程的全部同窗的學號、姓名;*/img
SELECT sname,sno FROM student WHERE sno in( SELECT A.sno FROM sc A,teacher B,course C WHERE B.tno = C.tno AND A.cno = C.cno AND B.tname = '葉平' )
/*--八、查詢 課程編號1的成績 比 課程編號2的成績 高的全部同窗的學號、姓名;*/di
SELECT sname,C.sno FROM (SELECT sno,score FROM sc WHERE cno = 1) as A, (SELECT sno,score FROM sc WHERE cno = 2) as B, (SELECT sno,sname FROM student ) as C WHERE A.score>B.score AND A.sno = B.sno AND C.sno = A.sno
SELECT sname,sno FROM student WHERE sno in ( SELECT A.sno FROM (SELECT sno,score FROM sc WHERE cno = 1) as A, (SELECT sno,score FROM sc WHERE cno = 2) as B WHERE A.score>B.score AND A.sno = B.sno )
/*--九、查詢全部課程成績小於60分的同窗的學號、姓名;*/
SELECT sno FROM sc WHERE MAX(score)>60 GROUP BY sno ASC /*這樣是錯誤的寫法,注意!!!!!!!*/ SELECT sno FROM sc GROUP BY sno ASC HAVING(MAX(score)<60)
/*--十、查詢全部課程成績大於60分的同窗的學號、姓名;*/
SELECT sno,MIN(score) FROM sc GROUP BY sno ASC HAVING(MIN(score)>60)