[在QueryBuilder中定义tableDefination时如何添加GROUP BY命令(node.js)
我在nodejs中使用QueryBuilder,在其中声明tableDefination是一个对象。在此对象中,我定义了selectSQL,formSQL和whereSQL。我的问题是如何在查询末尾添加GROUP BY命令。我试图将其添加到whereSQL中,但是QueryBuilder在whereSQL的末尾添加了“)”,因此最终会导致执行错误。下面是我的代码。
whereSql += " && tb_cdta_driver.cdta_id = " + cdta_id;"
var tableDefinition = {
sSelectSql: " count(tb_engagements.engagement_id) as rides, " +
" tb_cdta_driver.driver_id, " +
" tb_cdta_driver.driver_name, " +
" tb_cdta_driver.driver_phone, " +
" tb_cdta.cdta_name ",
//DISTINCT
sFromSql: " tb_cdta_driver JOIN tb_engagements ON tb_cdta_driver.driver_id = tb_engagements.driver_id JOIN tb_cdta ON tb_cdta_driver.cdta_id = tb_cdta.cdta_id ", // added tb_session himadri
sWhereAndSql: whereSql,
aSearchColumns: ["tb_cdta_driver.driver_id"],
// NASEEF: Added is_pos, appr_code and card_digits
sCountColumnName: " tb_cdta_driver.driver_id ",
aoColumnDefs: [{
mData: "driver_id",
bSearchable: true
}
]
};
回答如下:我通过在运行查询之前添加以下代码来解决它。希望对您有所帮助。
var requestQuery = req.query; var queries = queryBuilder.buildQuery(requestQuery); queries = queries.join(" "); var stringOperation = queries.toString().indexOf("ORDER"); queries = [queries.slice(0, stringOperation), "GROUP BY tb_cdta_driver.driver_id ", queries.slice(stringOperation)].join('');
评论列表(0)
- 暂无评论