![](/img/trans.png)
[英]Error : Error: ER_BAD_FIELD_ERROR: Unknown column 'user' in 'where clause'
[英]SQL Query Error: Error: ER_BAD_FIELD_ERROR: Unknown column 'Enrollment.final_grade' in 'having clause'
我正在尋找“對於教授同一門課程的每位教授,找到在截止日期之前輟學的學生人數(“W”級),但我一直收到關於我的 HAVING 子句的錯誤。有人能指出我的右邊嗎方向?甚至沒有表格正在形成。我假設在 HAVING 之前我還需要在其他地方進行 SELECT?請解釋我遺漏或搞砸了什么,謝謝!
CREATE TABLE Student (
student_id INT(9) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
gpa DECIMAL(3,2) DEFAULT 0.00
);
CREATE TABLE Course (
course_id CHAR(8) PRIMARY KEY,
description VARCHAR(100) NOT NULL,
units INT DEFAULT 3
);
CREATE TABLE CourseSection (
course CHAR(8) NOT NULL,
section INT(1) DEFAULT 1,
CONSTRAINT FK_SECTION_COURSE FOREIGN KEY (course) REFERENCES Course(course_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE CoursePrerequisites (
course CHAR(8) NOT NULL,
prerequisite CHAR(8) NOT NULL,
CONSTRAINT FK_COURSEPREREQUISITES_COURSE FOREIGN KEY (course) REFERENCES Course(course_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_COURSEPREREQUISITES_PREREQUISITES FOREIGN KEY (prerequisite) REFERENCES Course(course_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE Faculty (
faculty_id INT(9) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
role ENUM ('professor','researcher','both')
);
CREATE TABLE Application (
application_id INT PRIMARY KEY AUTO_INCREMENT,
student INT(9) NOT NULL,
program ENUM('Phd', 'Master', 'Undergrad'),
department ENUM("CS", "MATH"),
status ENUM("Admitted", "Rejected") DEFAULT "Rejected",
CONSTRAINT FK_APPLICATION_STUDENT FOREIGN KEY (student) REFERENCES Student(student_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE Enrollment (
enrollment_id INT PRIMARY KEY AUTO_INCREMENT,
course CHAR(8) NOT NULL,
student INT(9) NOT NULL,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
semester ENUM('FA', 'SP', 'SU'),
status ENUM('dropped', 'enrolled') DEFAULT "enrolled",
final_grade ENUM('A', 'B', 'C', 'D', 'F', 'NC', 'IC', 'CR', 'W', 'WU', 'NA') DEFAULT 'A',
CONSTRAINT FK_ENROLLMENT_COURSE FOREIGN KEY (course) REFERENCES Course(course_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_ENROLLMENT_STUDENT FOREIGN KEY (student) REFERENCES Student(student_id) ON DELETE CASCADE ON UPDATE CASCADE
);
SELECT Course.course_id, Student.student_id, COUNT(Enrollment.final_grade)
FROM Enrollment
JOIN Course ON Course.course_id = Enrollment.course
JOIN Student ON Student.student_id = Enrollment.student
GROUP BY Course.course_id
HAVING Enrollment.final_grade = 'W';
GROUP BY 需要 Student.student_id 字段。
SELECT Course.course_id, Student.student_id, COUNT(Enrollment.final_grade)
FROM Enrollment
JOIN Course ON Course.course_id = Enrollment.course
JOIN Student ON Student.student_id = Enrollment.student
WHERE Enrollment.final_grade = 'W'
GROUP BY Course.course_id, Student.student_id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.