我想在一个查询中从多个SQlite表中提取数据。使用(行)对象调用回调函数,然后发送到客户端。我尝试了几种不同的方法,只能返回一行。
let userIdentify = req.user
db.all("SELECT * FROM Table1 Where Name = ? UNION ALL SELECT * FROM Table2 WHERE Name = ?)", (userIdentify, userIdentify), function(err, row) {
if(row) {
console.log(row)
res.send({success : true, message : "Some message", information : row})
}
})
运行此命令时,我将table1中的行记录到控制台,而table2中没有任何记录。我还应该添加两个表具有相同数量的列等。它们每个都应返回具有19个键/值对的JS对象。
基本上,我认为查询语句是错误的,并且只将一个数据行传递到回调函数中。
请帮助。
答案 0 :(得分:0)
根据doc(强调):
有3种方式传递绑定参数:直接在 函数的参数,作为数组,以及作为named对象 参数。
如果您在参数列表周围将()
更改为[]
,它将起作用:
db.all("SELECT * FROM Table1 Where Name = ? UNION ALL SELECT * FROM Table2 WHERE Name = ?)", [userIdentify, userIdentify], function(err, row) {