【发布时间】:2019-06-08 06:43:16
【问题描述】:
我想在查询生成器的 select 查询中通过 Database.raw 获得 count 结果,但是当我的主表为空时,我查询的所有字段都是null,除了 Database.raw 结果。
这是我的查询:
const jobs = await Database.table('jobs')
.leftJoin('job_offers', 'jobs.id', 'job_offers.job_id')
.select([
Database.raw(`'job' as type`),
Database.raw('COUNT(jobs.id) as offers_count'),
'jobs.id', 'title', 'jobs.description', 'jobs.created_at',
])
.limit(limit).offset(offset)
我的查询结果是:
[
{
"type": "job",
"offers_count": 0,
"id": null,
"title": null,
"description": null,
"created_at": null
}
]
在上述查询中,当我的job 表中没有任何行时,结果必须为[]。
更新:
这是上述查询构建器方法的 SQL 命令,它返回 [] 作为结果
SELECT
'job' AS type,
jobs.id, jobs.title, description, jobs.created_at,
COUNT(job_offers.id) as offers_count
FROM jobs
LEFT JOIN job_offers ON jobs.id = job_offers.id
我的查询有什么问题?
【问题讨论】:
标签: mysql node.js knex.js adonis.js