0

システム分析コースとプロジェクト管理コースの両方を受講した学生のリストを提供しようとしています。

「システム分析」または「プロジェクト管理」を別々に選択すると、結果は得られますが、必要なものではありません。両方のコースを受講した学生が必要です。

SELECT FIRST_NAME, LAST_NAME, PHONE
FROM STUDENT d,ENROLLMENT f,SECTION g,COURSE h
WHERE d.STUDENT_ID = f.STUDENT_ID AND f.SECTION_ID = g.SECTION_ID AND g.COURSE_NO = h.COURSE_NO 
AND h.DESCRIPTION = 'Systems Analysis' AND h.DESCRIPTION = 'Project Management' 
AND DESCRIPTION NOT IN  
(SELECT m.DESCRIPTION
FROM STUDENT z,ENROLLMENT b,SECTION w,COURSE m
WHERE z.STUDENT_ID = b.STUDENT_ID AND b.SECTION_ID = w.SECTION_ID AND w.COURSE_NO = m.COURSE_NO
AND m.DESCRIPTION = 'Systems Analysis' AND m.DESCRIPTION = 'Project Management')
ORDER BY FIRST_NAME, LAST_NAME, PHONE;

しかし、「システム分析」と「プロジェクト管理」の両方を選択すると、行が表示されません

SELECT FIRST_NAME, LAST_NAME, PHONE
FROM STUDENT d,ENROLLMENT f,SECTION g,COURSE h
WHERE d.STUDENT_ID = f.STUDENT_ID AND f.SECTION_ID = g.SECTION_ID AND g.COURSE_NO = h.COURSE_NO 
AND h.DESCRIPTION = 'Systems Analysis' AND h.DESCRIPTION = 'Project Management' 
AND DESCRIPTION NOT IN  
(SELECT m.DESCRIPTION
FROM STUDENT z,ENROLLMENT b,SECTION w,COURSE m
WHERE z.STUDENT_ID = b.STUDENT_ID AND b.SECTION_ID = w.SECTION_ID AND w.COURSE_NO = m.COURSE_NO
AND m.DESCRIPTION = 'Systems Analysis' AND m.DESCRIPTION = 'Project Management')
ORDER BY FIRST_NAME, LAST_NAME, PHONE;

システム分析コースとプロジェクト管理コースの両方を受講した学生のリストを、行を指定せずに提供するにはどうすればよいですか?

4

2 に答える 2

1

または

SELECT stud.FIRST_NAME, stud.LAST_NAME, stud.PHONE
FROM STUDENT stud,
inner join ENROLLMENT enr On stud.Student_ID = enr.student_ID
inner join SECTION sec On sec.Section_ID = enr.Section_ID
inner join COURSE syst On syst.course_no = sec.Course_No
inner join COURSE proj On proj.Course_no = sec.Course_No
Where syst.DESCRIPTION = 'Systems Analysis' 
AND proj.DESCRIPTION = 'Project Management' 
ORDER BY stud.FIRST_NAME, stud.LAST_NAME, stud.PHONE

これらのエイリアスを正しく調べた場合、意味のあるものを知っている可能性があります。ああ、適切な結合構文を使用します。コツは、コースに 2 回参加することです。1 回はシステム分析用、もう 1 回はプロジェクト管理用です。

PSそこにSQLコースがある場合は、受講することをお勧めします。

于 2013-10-17T00:17:03.207 に答える
1

これを試して:

SELECT FIRST_NAME, LAST_NAME, PHONE
FROM STUDENT d,ENROLLMENT f,SECTION g,COURSE h
WHERE d.STUDENT_ID = f.STUDENT_ID AND f.SECTION_ID = g.SECTION_ID AND g.COURSE_NO = h.COURSE_NO 
AND h.DESCRIPTION = 'Systems Analysis' 
INTERSECT
SELECT FIRST_NAME, LAST_NAME, PHONE
FROM STUDENT d,ENROLLMENT f,SECTION g,COURSE h
WHERE d.STUDENT_ID = f.STUDENT_ID AND f.SECTION_ID = g.SECTION_ID AND g.COURSE_NO = h.COURSE_NO 
AND h.DESCRIPTION = 'Project Management' 
于 2013-10-17T00:05:25.867 に答える