我正在尝试生成一个查询,就像一个示例SQL查询:
INSERT into [school_tasks_daily] (school_id, task_id)
SELECT 7, task_id
FROM homework_tasks
WHERE day = sunday
我想在表homework_tasks中插入值,并使用我已经在表school_tasks_daily中创建的id创建几个列。因为有几个作业任务,属于同一天。
我在
中尝试了以下操作knex('school]').insert(function() {
this.select('school_id', task_id)
.from('school_tasks_daily')
.whereNotExists(function() {
this.select([ 7, task_id ])
.from('homework_tasks')
.where('day', sunday))
})
遗憾的是,看起来knex目前不支持从select子句中插入,您可以显式地选择列。
我认为你现在能做的最好的是通过.raw
指定插入部分,并保持选择作为查询生成器,即
knex.from(knex.raw('?? (??, ??)', ['school_tasks_daily', 'school_id', 'task_id']))
.insert(function () {
this.select([7, 'task_id'])
.from('homework_tasks')
.where('day', 'sunday')
});