我在我的數據庫students
兩個表:獲取行值僅在特定列的值不存在
GRADE_REPORT:
+----------------+-------------+------+
|StudentNo | SectionId | Grade|
+----------------+-------------+------+
| 11 | 85 | B |
| 17 | 112 | B |
| 17 | 119 | C |
| 17 | 135 | A |
| 8 | 85) | A |
| 8 | 92 | A |
+----------------+-------------+------+
學生:
+----------------+-------------+------+--------+----------------+
| StudentNumber | name | Classification| DepartmentName |
+----------------+-------------+---------------+----------------+
| 17 | Bill Smith | 1 | CS |
| 8 | Bob Brown | 2 | CS |
| 11 | Nick Fiener | 4 | MATH |
+----------------+-------------+------+-----+---------+---------+
我試圖找回所有學生的學號,姓名和主要部門ho do在他們的課程中沒有任何A等級。所以,我期待下,當我運行查詢:
+----------------+-------------+----------------+
| StudentNumber | name | DepartmentName |
+----------------+-------------+----------------+
| 11 | Nick Fiener | MATH |
這是我的發言至今:
SELECT students.STUDENT.StudentNumber, students.STUDENT.name,
students.STUDENT.DepartmentName
FROM students.GRADE_REPORT
INNER JOIN students.STUDENT
ON students.GRADE_REPORT.StudentNo = students.STUDENT.StudentNumber
WHERE
((students.GRADE_REPORT.Grade = "B"
OR
students.GRADE_REPORT.Grade = "C")
AND students.GRADE_REPORT.Grade != "A")
GROUP BY students.GRADE_REPORT.StudentNo;
編輯:
SELECT students.STUDENT.StudentNumber, students.STUDENT.name, students.STUDENT.DepartmentName
FROM students.STUDENT S
WHERE NOT EXISTS(SELECT students.GRADE_REPORT.StudentNo
FROM students.GRADE_REPORT gr
WHERE gr.StudentNo = S.StudentNumber
AND gr.Grade = "A");
我根據M修改了代碼戈登的指示(請看帖子)。然而,我收到一個錯誤:'錯誤代碼:1054.'字段列表'中的未知列'students.STUDENT.StudentNumber'?誰能告訴我爲什麼? – loveTrumpsHate
將'students.STUDENT.StudentNumber'替換爲's.studentnumber'和其他所有其他人 – zarruq