mysql - 为我的 SQL 查询获取错误的输出 - 为什么会这样?
问题描述
我有8张桌子-
Course(Courseno,Coursename,dept)
Section(Courseno,Sectionno),
Student(ssn,firstname,lastname,street,zip,city,state),
Enrolls(ssn,Sectionno,Courseno),Exam(Courseno,Sectionno,Examno),
Classroom(roomno,building,capacity),
conducted_in(roomno,building,Courseno,Sectionno,Examno)
Takes(ssn,Courseno,Sectionno,Examno,result)
我正在写两个查询。第一个查询是获取有 2 个或更多学生的课程名称和课程编号。我把它写成
mysql> SELECT c.CourseNo,Course_Name FROM STUDENT s INNER JOIN ENROLLS e
ON s.SSN=e.SSN INNER JOIN COURSE c ON e.CourseNo=c.CourseNo WHERE e.SSN>=2;
我得到的输出为
+----------+-----------------------+
| CourseNo | Course_Name |
+----------+-----------------------+
| CSC11 | Computer Architecture |
| CSC12 | VLSI |
| CSC12 | VLSI |
+----------+-----------------------+
3 rows in set (0.00 sec)
对于第二个查询,它表示获取有关在构建“RVR”中进行的考试的信息(考试编号、课程编号和部分编号)。随之获得房间的容量、房间号和建筑物名称。我把查询写成——
mysql> SELECT e.ExamNo,e.CourseNo,e.SectionNo,cr.RoomNo,cr.Building FROM EXAM e
INNER JOIN CONDUCTED_IN ci ON ci.ExamNo=e.ExamNo INNER JOIN CLASS_ROOM cr
ON cr.Building=ci.Building='RVR';
并得到输出
空集,1 个警告(0.00 秒)
尽管表格中存在建筑物 RVR
由于我没有得到所需的输出,我犯了什么错误?请帮我。
解决方案
为您尝试以下操作Question 2
,您没有WHERE
在查询中添加条件。这是问题on cr.Building=ci.Building='RVR'
select e.ExamNo,
e.CourseNo,
e.SectionNo,
cr.RoomNo,
cr.Building
from EXAM e
JOIN CONDUCTED_IN ci
on ci.ExamNo=e.ExamNo
JOIN CLASS_ROOM cr
on cr.Building=ci.Building
WHERE cr.Building = 'RVR';
因为Question 1
,你忘了使用DISTINCT
,同样的结果也可以通过GROUP BY
。
SELECT
DISTINCT c.CourseNo,
Course_Name
FROM STUDENT s
JOIN ENROLLS e
ON s.SSN=e.SSN
JOIN COURSE c
ON e.CourseNo=c.CourseNo
WHERE e.SSN>=2;
推荐阅读
- json - How to parse multi properties with spacing in jq json bash script?
- delphi - delphi TColor 格式 负片
- javascript - Why did my tinymce icon disappear suddenly vue.js?
- java - How to implement a request-response pattern with paho mqtt java?
- database - Huge Google firestore data reads
- java - Jgroup port selection control externally
- azure - Cant call azure api to get metric definition
- c# - Serializing Interface array
- git - 为所有 Git 子模块设置分支时出错
- r - 如何根据列名的子字符串转置和重塑数据框