SQL 쿼리를 사용하여 항목에 값 목록이 포함되어 있는지 확인하고 비교하십시오.
P粉270842688
2023-08-30 17:47:36
<p>다음 스키마를 가진 두 개의 MySql 테이블이 있습니다</p>
<pre class="brush:php;toolbar:false;">Courses(CNO:CHAR(10),CName:VARCHAR(50), DeptId:CHAR(3)): 각 강좌에는 CNO라는 고유 ID가 있습니다.
Register(RNO:CHAR(10), CNO:CHAR(10), 연도:INTEGER, Sem:INTEGER, 등급:CHAR)</pre>
<p>현재 작업은 (r1, r2, d)를 만족하는 모든 튜플을 찾는 것입니다. 여기서 학생 ID r1을 가진 학생은 학생 ID r2를 가진 학생이 ID<로 완료한 모든 DeptId를 완료했습니다. / Strong>학과의 강좌입니다. </p>
<p>나의 방법은 먼저 학생번호 r2인 학생이 해당 학과에서 이수한 과목을 모두 찾은 다음, 마찬가지로 학생번호 r1인 학생이 해당 학과에서 이수한 과목을 모두 찾아서 해당 과목이 맞는지 비교하는 것입니다. 같은. 그러나 이것이 올바른지 또는 두 결과를 어떻게 비교하는지 모르겠습니다. </p>
<p>다음은 특정 학과에서 중학교 번호가 r2인 학생이 이수한 모든 과목을 확인하는 데 사용하는 코드입니다. </p>
<p>코드 및 데이터 DB Fiddle에 대한 링크는 다음과 같습니다</p>
이게 내 방법이야
1단계: 학생의 고유한 조합을 포함하는 두 개의 열(student1 및 Student2)이 있는 테이블을 만듭니다
예:
으아악2단계: 이전 테이블의 각 DeptId에 대해 고유한 DeptId를 추가하는 테이블을 생성하세요
예:
으아악3단계: 마지막으로 RNO1과 RNO2가 각 DeptId에서 동일한 코스를 수강한 튜플만 유지됩니다.
다음은 위의 테이블을 rno1_rno2_deptid가 참조하는 예시입니다
으아악위에서는 RNO1과 RNO2가 동일한 시리즈에서 동일한 CNO를 갖는 경우만 선택합니다.