我有三个表:
id INT
名称VARCHAR
id INT
说明VARCHAR
id INT
student_id(student.id的外键)
class_id(class.id的外键)
我该如何退还不在student_classes中的所有学生课程?
我在student_id
中收到了request.params.student_id
,我尝试尝试以下操作:
async getAvailableClassesOfAStudent({ request }){
const classes = await Database
.query()
.select('class.*')
.from('class')
.leftJoin('student_classes', 'class.id', 'student_classes.class_id')
.whereNotIn('student_classes.student_id', request.params.student_id)
return classes
}
我得到:
选择“班级”。*从“班级”左侧加入“ student_classes” “ class”。“ id” =“ student_classes”。“ class_id”其中 $ 1中没有“ student_classes”。“ student_id”-或附近的语法错误 “ $ 1”
答案 0 :(得分:0)
我认为这可能对您有帮助:How to select all records from one table that do not exist in another table?
类似的东西:
...
const classes = await Database
.query()
.select('class.*')
.from('class')
.leftJoin('student_classes', 'class.id', 'student_classes.class_id')
.whereNull('student_classes.student_id')
...