Получить все данные из разных таблиц в базе данных SQLite в Node.js - PullRequest
0 голосов
/ 13 июля 2020

Это способ получить все данные из базы данных?

До сих пор мне удалось получить все данные из таблицы:

router.get('/', function (req, res, next) {
  db.serialize(function () {
    db.all('SELECT id, name, surname FROM Table1', function (
      err,
      rows
    ) {
      return res.send(rows);
    });
  });

  db.close();
});

но если таблиц больше, * Например, 1006 *, Table2 и Table3.

Попытка поместить все запросы в вызов db.all, похоже, не работает.

 router.get('/', function (req, res, next) {
      db.serialize(function () {
        db.all('SELECT id, name, surname FROM Table1, SELECT date, city FROM Table2, SELECT person, year FROM Table3', function (
          err,
          rows
        ) {
          return res.send(rows);
        });
      });
    
      db.close();
    });

ОБНОВЛЕНИЕ

это таблицы, как я могу получить все их данные и отправить их во внешний интерфейс? это то, что я хочу сделать.

Я бы предпочел, чтобы они были как отдельные таблицы во внешнем интерфейсе, где вызов вызывается следующим образом:

callAPI() {
    fetch('http://localhost:9000/testAPI')
      .then((res) => res.text())
      .then((res) => this.setState({ apiResponse: res }));
  }

есть ли способ отправить все эти таблицы?

enter image description here

enter image description here

enter image description here

введите описание изображения здесь

1 Ответ

1 голос
/ 13 июля 2020

При условии, что все ваши таблицы имеют одинаковые столбцы или, по крайней мере, выходные данные могут быть связаны с одинаковыми именами столбцов (можно поставить нули, если столбец не находится в одной из таблиц), вы можете использовать UNION

например:

SELECT id, name FROM table1 
 UNION 
   SELECT id, name FROM table2
 UNION 
   SELECT myid as id, test as name FROM table3

Таким образом вы можете добавить все такие таблицы в одну таблицу вывода. Кроме того, если вы хотите агрегировать с помощью кода, вы можете использовать приведенный ниже запрос, чтобы получить все имена таблиц и работать с каждой таблицей:

SELECT name FROM my_db.sqlite_master WHERE type='table';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...