我有三个表:
学生
id INT
名称 VARCHAR
类别
id INT
描述 VARCHAR
学生类(class)
id INT
Student_id(students.id 的外键)
class_id(class.id 的外键)
我如何返回不在student_classes中的学生的所有类(class)?
我在 request.params.student_id
中收到 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
}
我得到:
select "class".* from "class" left join "student_classes" on "class"."id" = "student_classes"."class_id" where "student_classes"."student_id" not in $1 - syntax error at or near "$1"
最佳答案
我认为这可能对您有帮助: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')
...
关于node.js - 我如何向所有类(class)表明学生没有留在阿多尼斯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59396685/