【发布时间】:2019-10-17 16:53:59
【问题描述】:
我正在尝试使用 Node、Express 和 JavaScript 在一条路线上显示来自两个数据库表的数据。我已使用 knex 将我的 Express 应用程序连接到数据库,并尝试使用 MySQL SELECT 查询从两个表中获取数据以显示在服务器上。
'offence_columns' 表中的 'column' 属性/列中的数据显示为 'offences' 表中的一列,因此我有两个承诺,其中一个从 'column' 属性中获取数据'offence_columns' 表,另一个选择 'offences' 表中的 'area' 属性和另一个从 'columns' 属性中选择的属性/列。
由于 'column' 是 MySQL 中的保留字,我在选择它时遇到了一些问题。在提供的代码中使用单引号为我提供了终端中的代码:
未处理的拒绝错误:ER_PARSE_ERROR:您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“
offences”附近的“0”附近使用正确的语法。
如果我用单引号代替反引号 (column),我会得到同样的错误,但如果我尝试同时使用这两个 ('column'),我会得到一个不同的错误:
错误:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“
column”。
我尝试使用别名,但似乎没有帮助。
router.get('/api/search/:offence', function(req, res, next) {
req.db.from('offence_columns').select('column').where('pretty',"=",req.params.offence)
.then((rows) => {
req.db.from('offences').select('area', rows)
.then((rows2) => {
res.json({"Error" : false, "Message" : "Success", "City" : rows2})
})
})
.catch((err) => {
console.log(err);
res.json({"Error" : true, "Message" : "Error in MySQL query"})
})
});
【问题讨论】:
标签: javascript mysql node.js express knex.js