Mysql 对于AdonisJS中的联接结果和原始查询,查询生成器返回null
我想通过数据库获得计数结果。在查询生成器的选择查询中,原始,但当我的主表为空时,除了数据库之外,我的查询的所有字段均为Mysql 对于AdonisJS中的联接结果和原始查询,查询生成器返回null,mysql,node.js,knex.js,adonis.js,Mysql,Node.js,Knex.js,Adonis.js,我想通过数据库获得计数结果。在查询生成器的选择查询中,原始,但当我的主表为空时,除了数据库之外,我的查询的所有字段均为null。原始结果 我的问题是: const jobs = await Database.table('jobs') .leftJoin('job_offers', 'jobs.id', 'job_offers.job_id') .select([ Database.raw(`'job' as type`), Database.raw('COUNT(job
null
。原始结果
我的问题是:
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
}
]
在上面的查询中,当我的作业
表中没有任何行时,结果必须是[]
更新:
下面是上述查询生成器方法的SQL命令,返回结果为[]
选择
“工作”作为类型,
jobs.id、jobs.title、description、jobs.created_at、,
将(job\u offers.id)计数为offers\u计数
来自乔布斯
LEFT JOIN job\u offers ON jobs.id=job\u offers.id
我的查询出了什么问题?您使用的是leftJoin,如果您不想要空结果,您应该使用innerJoin或join(两者都做相同的事情)
const jobs=wait Database.table('jobs'))
.join('job_offers'、'jobs.id'、'job_offers.job_id')
.选择([
Database.raw(`job'作为类型`),
Database.raw('COUNT(jobs.id)as offers\u COUNT'),
“jobs.id”、“title”、“jobs.description”、“jobs.created_at”,
])
.limit(limit).offset(offset)
答案很好,但提供示例代码可以帮助用户更好地理解它。这并不能提供问题的答案。一旦你有足够的钱,你将能够;相反-