Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对于AdonisJS中的联接结果和原始查询,查询生成器返回null_Mysql_Node.js_Knex.js_Adonis.js - Fatal编程技术网

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)
答案很好,但提供示例代码可以帮助用户更好地理解它。这并不能提供问题的答案。一旦你有足够的钱,你将能够;相反-