Запрос БД в SQLite для нескольких таблиц - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу извлечь данные из нескольких таблиц SQlite в одном запросе. Вызовите функцию обратного вызова с объектом (row), а затем отправьте на клиентскую сторону. Я пробовал несколько разных способов и могу вернуть только одну строку.

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})
  }
})

Когда я запускаю это, я получаю строку из таблицы 1, зарегистрированную на консоли, и ничего для таблицы 2. Также следует добавить, что в обеих таблицах одинаковое количество столбцов и т. Д. Каждая из них должна возвращать объект JS с 19 парами ключ / значение.

По сути, я считаю оператор запроса неверным, и он передает только одну строку данных в функцию обратного вызова.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 05 апреля 2019

Согласно документ (выделение добавлено):

Существует три способа передачи параметров связывания: непосредственно в аргументы функции, как массив и как объект для именованных параметры.

Это будет работать, если вы измените () на [] в списке параметров следующим образом:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...