sqlite - 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 对象。
本质上我认为查询语句是错误的,它只是将一个数据行传递给回调函数。
请帮忙。
解决方案
根据文档(强调添加):
传递绑定参数有三种方式:直接在函数的参数中,作为数组,以及作为命名参数的对象。
()
如果您像这样更改[]
参数列表,它将起作用:
db.all("SELECT * FROM Table1 Where Name = ? UNION ALL SELECT * FROM Table2 WHERE Name = ?)", [userIdentify, userIdentify], function(err, row) {
推荐阅读
- assembly - 加上已经用 Irvine 的 MASM 汇编语言的产品价格 * 数量
- javascript - 如何在 map() 中使用 IF 来检查渲染了哪个数组元素
- flutter - 如何在 AlertDialog 中获得玻璃效果?
- python - Django 和文件 DSN:如何连接?
- docker - 带有打字稿的 Docker 卷
- perl - Perl PDF::API2 - 将水印/信头作为背景图像的麻烦
- java - java客户端-服务器通信中的问题
- email-verification - 电子邮件邀请后Supabase设置密码
- powershell - 我可以从 PowerShell 中的 JSON 数组进行迭代吗?
- html - 如何在不使用 flexbox 等的情况下使表格网格响应