Rumah > Soal Jawab > teks badan
P粉7998853112023-08-31 10:19:18
Ini kaedah saya
Langkah 1: Buat jadual dengan dua lajur, pelajar1 dan pelajar2, yang mengandungi gabungan unik pelajar
Contohnya:
RNO1 RNO2 1 2 1 3 2 3
Langkah 2: Buat jadual dengan menambahkan DeptId unik untuk setiap DeptId berbeza daripada jadual sebelumnya
Contohnya:
RNO1 RNO2 DeptId 1 2 IME 1 2 CHE 1 2 ECO 1 3 IME 1 3 CHE 2 3 ECO
Langkah 3: Akhirnya, hanya tupel di mana RNO1 dan RNO2 telah mengambil kursus yang sama dalam setiap DeptId dikekalkan.
Berikut ialah contoh di mana rno1_rno2_deptid merujuk kepada jadual di atas
SELECT
*
FROM
rno1_rno2_deptid as d
WHERE
NOT EXISTS((SELECT DISTINCT CNO FROM Register AS r WHERE r.RNO = d.RNO1 AND r.DeptId = d.DeptId)
MINUS
(SELECT DISTINCT CNO FROM Register AS r WHERE r.RNO = d.RNO2 AND r.DeptId = d.DeptId))
Di atas hanya memilih kes di mana RNO1 dan RNO2 mempunyai CNO yang sama dalam siri yang sama.