Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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 Knex/SQL:在一个对象中合并一对多连接_Mysql_Sql_Node.js_Database_Knex.js - Fatal编程技术网

Mysql Knex/SQL:在一个对象中合并一对多连接

Mysql Knex/SQL:在一个对象中合并一对多连接,mysql,sql,node.js,database,knex.js,Mysql,Sql,Node.js,Database,Knex.js,我有两个表格:“page”和“page_css”。我想在页面和页面之间建立一对多的关系(一个页面包含多个页面)。 见表结构: 页表结构: Page_css表格结构: 这是我正在使用的Knex查询: var page=knex('page') .where({slug:req.params.slug}) .join('page_css',{'page_css.page_id':'page.id'}) .then(功能)(第页){ 若有(第页){ 返回res.json(第页); } 返回res.

我有两个表格:“page”和“page_css”。我想在页面和页面之间建立一对多的关系(一个页面包含多个页面)。 见表结构:

页表结构:

Page_css表格结构:

这是我正在使用的Knex查询:

var page=knex('page')
.where({slug:req.params.slug})
.join('page_css',{'page_css.page_id':'page.id'})
.then(功能)(第页){
若有(第页){
返回res.json(第页);
}
返回res.send('未找到页面');
});
这就是我得到的结果:

但我想要这样的结果:


我需要运行什么样的SQL/Knex查询才能获得上述格式的查询?

Knex不能变魔术,只有“公正”的查询生成器才能构造正确的SQL查询

您需要将此平面结果转换为所需的对象

const flatData=[{
id:1,
slug:'测试',
页码:1,
css_文件:“main”
}, {
id:1,
slug:'测试',
页码:1,
css_文件:“英雄”
}];
const resultMap=flatData.reduce((结果,行)=>{
结果[row.id]=结果[row.id]|{
一行
css_文件:[]
};
结果[row.id].css_文件.push(row.css_文件);
返回结果;
}, {});
log(Object.values(resultMap))