MySQL 쿼리 작성 문제

사용자 3780986

나는 지난 며칠 동안 다음을 수행하는 MySQL 쿼리를 작성하기 위해 노력해 왔습니다.

가르 칠 자격을 갖춘 교수가 한 명 이상있는 각 클래스에 대해 해당 클래스를 가르 칠 자격이있는 교수의 수를 나열합니다.

다음 쿼리를 시도했지만 올바른 출력을 제공하지 않았습니다.

select Class, Semester, p.EmpId from Qualified q, Teaches T, Professor p where q.EmpId = p.EmpId and T.EmpId = p.EmpId group by p.EmpId;

+-------+---------+-------+---------+-----------+------+-----------------------------------+
| EmpId | ClassId | EmpId | FName   | LName     | Dept | QualClass                         |
+-------+---------+-------+---------+-----------+------+-----------------------------------+
|   101 | BA101   |   101 | Bobby   | Ewing     | BA   | BA101, BA102                      |
|   102 | BA101   |   102 | Red     | Skeleton  | BA   | BA101, BA102                      |
|   101 | BA102   |   101 | Bobby   | Ewing     | BA   | BA101, BA102                      |
|   102 | BA102   |   102 | Red     | Skeleton  | BA   | BA101, BA102                      |
+-------+---------+-------+---------+-----------+------+-----------------------------------+

다음은 관련 테이블입니다.

CREATE TABLE Professor
(
    EmpId INTEGER,
    FName VARCHAR(10),
    LName VARCHAR(10),
    Dept VARCHAR(2),
    QualClass VARCHAR(40),
    PRIMARY KEY (EmpId)
);

CREATE TABLE Teaches
(
    Class VARCHAR(5),
    Section INTEGER,
    Semester CHAR(4),
    EmpId INTEGER,
    FOREIGN KEY (EmpId) REFERENCES Professor(EmpId)
);

CREATE TABLE Qualified
(
    EmpId INTEGER,
    ClassId VARCHAR(5)
);

다음은 몇 가지 DML 문입니다.

INSERT INTO Professor (EmpId, FName, LName, Dept, QualClass) VALUES (101, 'Bobby', 'Ewing', 'BA', 'BA101, BA102');
INSERT INTO Professor (EmpId, FName, LName, Dept, QualClass) VALUES (102, 'Red', 'Skeleton', 'BA', 'BA101, BA102');
INSERT INTO Teaches (Class, Section, Semester, EmpId) VALUES ('BA101', 1, 'FA12', 101);
INSERT INTO Teaches (Class, Section, Semester, EmpId) VALUES ('BA101', 1, 'SP13', 102);
INSERT INTO Teaches (Class, Section, Semester, EmpId) VALUES ('BA101', 1, 'SU13', 101);
INSERT INTO Teaches (Class, Section, Semester, EmpId) VALUES ('BA102', 1, 'FA12', 102);
INSERT INTO Teaches (Class, Section, Semester, EmpId) VALUES ('BA102', 1, 'SP13', 101);
INSERT INTO Teaches (Class, Section, Semester, EmpId) VALUES ('BA102', 1, 'SU13', 102);
INSERT INTO Qualified (ClassId, EmpId) VALUES ('BA101', 101);
INSERT INTO Qualified (ClassId, EmpId) VALUES ('BA101', 102);
INSERT INTO Qualified (ClassId, EmpId) VALUES ('BA102', 101);
INSERT INTO Qualified (ClassId, EmpId) VALUES ('BA102', 102);
아닐 나타

귀하의 진술에 따르면 :

가르 칠 자격을 갖춘 교수가 한 명 이상있는 각 클래스에 대해 해당 클래스를 가르 칠 자격이있는 교수의 수를 나열합니다.

다음 쿼리 는 수업을 가르 칠 자격이있는 교수수를 나열합니다 . 그리고 작동을 보여주는 SQLFiddle 이 있습니다.

SELECT Q.ClassId, count(Q.EmpId) as "Professor Count"
FROM Qualified Q
GROUP BY ClassId

이제 어떤 교수가 자격을 갖추 었는지 알아야 한다면 다른 질문 이 될 것 입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사