我正在努力让那些教导学生的教师与教练一样生活在同一个邮政编码中。
首先,我发现学生和教师使用交叉分享了哪些zipcodes。
SELECT DISTINCT FIRST_NAME,LAST_NAME,PHONE
FROM INSTRUCTOR
WHERE ZIP IN (
SELECT ZIP
FROM STUDENT
INTERSECT
SELECT ZIP
FROM INSTRUCTOR
);
如何找到上述查询中所有学生的section_id?
SELECT SECTION_ID
FROM STUDENT s
JOIN ENROLLMENT e ON s.STUDENT_ID = e.STUDENT_ID
JOIN SECTION w ON e.SECTION_ID = w.SECTION_ID
JOIN INSTRUCTOR z ON w.INSTRUCTOR_ID = z.INSTRUCTOR_ID;
我不知道如何获得内部查询,如INSTRUCTOR_ID.SECTION_ID = STUDENT_ID SECTION_ID,
现在我在我的查询中只返回住在该邮政编码中的所有教师,但我还需要检查正在接受该邮政编码中的教师教授的部分的学生.... / p>
SELECT DISTINCT FIRST_NAME,LAST_NAME,PHONE
FROM
(
SELECT FIRST_NAME,LAST_NAME,PHONE,ZIP
FROM STUDENT
)
Derived
WHERE ZIP IN (
SELECT ZIP
FROM STUDENT
INTERSECT
SELECT ZIP
FROM INSTRUCTOR
);
答案 0 :(得分:1)
SELECT DISTINCT z.FIRST_NAME,z.LAST_NAME,z.PHONE
FROM STUDENT s
JOIN ENROLLMENT e ON s.STUDENT_ID = e.STUDENT_ID
JOIN SECTION w ON e.SECTION_ID = w.SECTION_ID
JOIN INSTRUCTOR z ON w.INSTRUCTOR_ID = z.INSTRUCTOR_ID AND s.ZIP = z.ZIP
答案 1 :(得分:1)
编写一个返回教师及其学生的查询。添加讲师和学生邮政编码。添加一个谓词,使邮政编码必须相同。