1. 程式人生 > >MySQL 子查詢和表連線查詢

MySQL 子查詢和表連線查詢

SELECT * FROM grade;
SELECT * FROM result;
SELECT * FROM student;
SELECT * FROM subject;
SELECT s.StudentNo ,s.StudentName ,j.SubjectName ,r.StudentResult
FROM student s
INNER JOIN result r
ON s.StudentNo=r.StudentNo
INNER JOIN subject j
ON r.SubjectNo=j.SubjectNo
WHERE r.StudentResult>80 AND SubjectName=‘JAVA第一學年’
ORDER BY r.StudentResult DESC
LIMIT 0,5;

#查詢所有姓李同學的學生成績
SELECT s.StudentName,j.SubjectName,r.StudentResult
FROM student s
INNER JOIN result r
ON s.StudentNo=r.StudentNo
INNER JOIN subject j
ON r.SubjectNo=j.SubjectNo
WHERE s.StudentName LIKE ‘%李%’ AND r.StudentResult
ORDER BY r.StudentResult DESC
LIMIT 0,10

USE school

SELECT * FROM student
SELECT * FROM grade
SELECT * FROM subject


SELECT * FROM result
SELECT * FROM subject WHERE subjectName=‘U1’

#查詢密碼長度不足六位的學員
SELECT studentNo,studentName,LoginPwd,GradeName
FROM student s,grade g
WHERE s.GradeId=g.gradeid
AND LENGTH(LoginPwd)<6 #查詢密碼長度不足六位的學員

#查詢某同學的所有考試成績
SELECT subjectName AS 科目名稱,StudentResult AS 考試成績
FROM subject AS s
INNER JOIN result AS r
ON s.subjectno

=r.subjectNo
INNER JOIN student
ON r.StudentNo= student.StudentNo
WHERE studentname=‘郭靖’
GROUP BY subjectname

#使用表連線的方式查詢所有XX年級學員學號,姓名及年級
SELECT studentNo 學號, studentName 姓名,gradename 年級
FROM student s , grade g
WHERE s.GradeId=g.GradeId
AND gradename=‘大一’;

#使用子查詢的方式查詢所有XX年級學員學號,姓名及ID
SELECT studentNo 學號, studentName 姓名,GradeId 年級ID
FROM student s
WHERE gradeid IN(SELECT gradeid FROM grade)
ORDER BY gradeid ;

#使用表連線方式查詢“Java”課程至少一次考試剛好等於60分的學生姓名
SELECT studentName ,SubjectName,StudentResult
FROM student s
INNER JOIN result r
ON s.StudentNo=r.StudentNo
INNER JOIN subject sj
ON r.SubjectNo=sj.SubjectNo
WHERE sj.SubjectName LIKE ‘%Java%’
AND r.StudentResult=60;

#使用子查詢方式查詢“Java”課程至少一次考試剛好等於60分的學生姓名
SELECT studentNo,studentName
FROM student s
WHERE s.StudentNo
IN(SELECT StudentNo FROM result r WHERE r.StudentResult=60 AND SubjectNo
IN(SELECT SubjectNo FROM subject sj WHERE sj.SubjectName LIKE ‘%Java%’
));

#使用子查詢方式+表連線方式混合查詢“Java”課程至少一次考試剛好等於60分的學生姓名
SELECT studentNo,studentName
FROM student s
WHERE s.StudentNo
IN(SELECT StudentNo FROM result r
INNER JOIN subject sj
ON r.SubjectNo=sj.SubjectNo
WHERE r.StudentResult=60 AND sj.SubjectName LIKE ‘%Java%’);