首页 > 解决方案 > SQLite中多个表的数据库查询

问题描述

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

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

请帮忙。

标签: sqliteexpresscallback

解决方案


根据文档(强调添加):

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

()如果您像这样更改[]参数列表,它将起作用:

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


推荐阅读