【问题标题】:DB query in SQLite for multiple tablesSQLite中多个表的数据库查询
【发布时间】:2019-08-24 07:45:52
【问题描述】:

我想在一个查询中从多个 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 对象。

基本上我认为查询语句是错误的,它只是将一个数据行传递给回调函数。

请帮忙。

【问题讨论】:

  • 每个选择单独运行时是否返回行?
  • 是的,如果我有多个查询,我可以访问它们

标签: sqlite express callback


【解决方案1】:

根据doc(强调添加):

传递绑定参数的方式有3种:直接在 函数的参数,作为数组,作为命名的对象 参数。

如果您将参数列表周围的() 更改为[],它将起作用,如下所示:

db.all("SELECT * FROM Table1 Where Name = ? UNION ALL SELECT * FROM Table2 WHERE Name = ?)", [userIdentify, userIdentify], function(err, row) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 2011-12-02
    • 2023-03-08
    • 2020-08-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多