Как объединить две разные таблицы из SQLite и PostgreSQL? - PullRequest
0 голосов
/ 02 июля 2019

Я сталкиваюсь с проблемой объединения двух таблиц из разных запросов к базе данных в JAVA.У меня есть 2 таблицы A и B. A принадлежит БД SQLite, а B принадлежит БД Postgres.

Есть ли способ объединить эти две таблицы и получить выходные данные.

Я попытался объединить эти таблицы из запроса внутреннего соединения, но он не работает для меня.

Таблица A принадлежит sqlite DB

  appid |  charid
  ------+--------
  2142  |      2
  2142  |      4
  2142  |      7

Таблица B принадлежит Postgres DB

charid  |          charname
--------+----------------------------
      1 | Bandwidth
      2 | Prone to misuse
      3 | Transfer files
      4 | Tunnels apps

Я должен показать вывод, как показано ниже:

  appid |          charname
--------+----------------------------
   2142 | Excessive Bandwidth
   2142 | Prone to misuse
   2145 | Transfer files
   2146 | Tunnels other apps

Ответы [ 3 ]

1 голос
/ 02 июля 2019

Если таблицы не слишком большие, возможно, самое простое решение - выполнить соединение внутри вашего Java-кода.

Если вы можете поместить базу данных SQLite на сервер Postgres, вы можете попытаться установить оболочку внешних данных SQLite и создать чужую таблицу , которая делает Таблица SQLite доступна внутри Postgres.

Опять же: для этого требуется, чтобы файл базы данных SQLite можно было перенести в файловую систему сервера Postgres.

Затем вы можете объединить обе таблицы в одном запросе к серверу Postgres.


Но, возможно, помещение всего в одну базу данных (например, Postgres) является лучшим решением в долгосрочной перспективе.

1 голос
/ 02 июля 2019

Вы не можете получить доступ к нескольким базам данных через драйверы JDBC в одном запросе.

Вы должны выполнить два запроса и объединить их вместе в своем собственном коде.

Если это долгосрочное решение, подумайте о копировании статических таблиц в базу данных.Возможно, даже объединить в одной базе данных.

0 голосов
/ 02 июля 2019

Я думаю, что вы должны создать представление для объединения двух таблиц, используя запрос:

`CREATE VIEW [dbo].[YourView]
 as
 select 
 a.charId, 
 a.SomeInfo, 
 b.SomeOtherInfo
 from TableInA a
join DatabaseB.dbo.TableInB b ..`

, после чего вы можете запросить представление

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