SQLite 中的递归 sql 查询 n 到 n

Recursive sql query n to n in SQLite

我有一个像这样的数据库 table

Table student
_______________
id_student int (PK)
student_name VARCHAR

我有一个递归循环: 一个学生可以监督很多学生,一个学生可以被很多学生监督 所以一个新的 table:

Table oversee
________________
id_student pk, fk 
id_overseen pk, fk
date date

问题是我想获取我拥有的列表 我做了一个 sql 查询:

with 
sr1 as ( select s.student_name as over from student s, oversee o where o.id_student = s.id_student),
sr2 as (select s.student_name as overseen from student s, oversee o where o.id_overseen = s.id_student)
select distinct * from sr1, sr2;

问题是查询return错误的答案 我的意思是如果我们在 table 中有两行,它将 return 4 行。 我想让每个学生都受到监督: 学生 |监督。 有人有什么想法吗? 谢谢

I want to get a table with student | overseen | date

SELECT s.student_name AS student
     , s2.student_name AS overseen
     , oversee.date
  FROM student s
  JOIN oversee ON oversee.id_student = s.id_student
  JOIN student s2 ON s2.id_student = oversee.id_overseen