我在合并来自JAVA中不同数据库查询的两个表时遇到问题。 我有2个表A和B。A属于SQLite DB,B属于Postgres DB。
有没有一种方法可以合并这两个表并获取输出。
我尝试通过内部联接查询联接这些表,但对我不起作用。
表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
答案 0 :(得分:1)
您不能在单个查询中跨JDBC驱动程序访问多个数据库。
您必须执行两个查询,然后使用自己的代码将它们合并在一起。
如果这是一个长期解决方案,请考虑跨数据库复制静态表。甚至可以整合到单个数据库中。
答案 1 :(得分:1)
如果表不是太大,最简单的解决方案可能是在Java代码中进行联接。
如果可以将SQLite数据库放在Postgres服务器上,则可以尝试安装SQLite foreign data wrapper并创建一个foreign table,以使SQLite表可从Postgres内部使用。
再次:这要求SQLite数据库文件可以移动到Postgres服务器的文件系统中。
然后,您可以在针对Postgres服务器的单个查询中联接两个表。
但是从长远来看,也许将所有内容都放在一个数据库(例如Postgres)中是更好的解决方案。
答案 2 :(得分:-2)
我认为您应该使用这样的查询来创建视图以合并两个表:
`CREATE VIEW [dbo].[YourView]
as
select
a.charId,
a.SomeInfo,
b.SomeOtherInfo
from TableInA a
join DatabaseB.dbo.TableInB b ..`
之后,您可以查询视图