sql数据库中跨不同数据库服务器的查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql数据库中跨不同数据库服务器的查询相关的知识,希望对你有一定的参考价值。

A服务器上有数据库A; B服务器上有数据库B;在A数据库上建立了一个试图A;想在B数据库上可以直接查询A数据库的试图A;同时,不想把A服务器IP地址,以及A数据库用户名和密码;让B数据库的维护人员看到。可以有什么方法在B数据库上可以查询A数据库上的试图A吗?

--SQL Server跨服务器查询
--创建链接服务器(连接的保密要自己想办法解决啦!)
exec sp_addlinkedserver 'LKSV', ' ', 'SQLOLEDB', '远程服务器名或ip地址' 
exec sp_addlinkedsrvlogin 'LKSV', 'false ',null, '用户名', '密码'
--查询实例
select * from LKSV.数据库名.dbo.表名

参考技术A 我也查不出来的 参考技术B 不给分你问个锤子

在 Spring JPA 中跨两个不同的数据库表进行查询

【中文标题】在 Spring JPA 中跨两个不同的数据库表进行查询【英文标题】:query across two different database table in spring JPA 【发布时间】:2017-11-06 04:22:36 【问题描述】:

我有三张桌子。 Table1 在 DB1 中,table2 和 table3 在 DB2 中,如下所述:

DB1 中的表 1:customerId、accountNumber

DB2 中的表 2:customerId、accountNumber、id

DB2 中的表 3:id、名称、国家

我想根据 table1 中的 customerId 和 accountNumber 从 table3 中获取名称和国家/地区。这些表格如上所述相关。表没有任何映射,只是列是相同的。

我正在使用 Spring JPA 和 MySql。

谁能帮助如何在 Spring JPA(在 JPARepository 类中)跨数据库对上述 3 个表执行连接查询。

我想在 repo 类中运行一个连接查询:

select distinct d2t3.id from DB1.Table1 d1t1, DB2.Table2 d2t2, DB2.Table3 d2t3
where d1t1.customerid=d2t2.customerid 
and d1t1.accountNumber=d2t2.accountNumber
and d2t2.id=d2t3.id;

【问题讨论】:

完成一些基本教程。如果您仍有问题和具体问题,我们很乐意提供帮助。 @JensSchauder,能否请您提供本教程的链接,我试图找到但找不到,因此在这里发布了问题... 不知道它们是否有任何好处,但是在谷歌搜索相关关键字时这些出现在最前面:tutorialspoint.com/jpatutorialspoint.com/jpa/jpa_jpql.htmspring.io/guides/gs/accessing-data-jpa @JensSchauder,感谢您提供的网址。我已经浏览了这些 URL,但它们与跨数据库连接表无关。我需要连接来自两个数据库的三个表。 @Manglesh 你有什么解决方案可以满足你的要求吗?如果是,请告诉我。谢谢 【参考方案1】:

您可以使用链接配置多数据源配置:

https://medium.com/@joeclever/using-multiple-datasources-with-spring-boot-and-spring-data-6430b00c02e7

然后您就可以按如下方式运行查询:

@Query(value = "select distinct d2t3 from DB1.Table1 d1t1, DB2.Table2 d2t2, 
DB2.Table3 d2t3 where d1t1.customerid=d2t2.customerid and 
d1t1.accountNumber=d2t2.accountNumber and d2t2.id=d2t3.id", nativeQuery = true)
List<Table3> retrieveByQuery();

【讨论】:

以上是关于sql数据库中跨不同数据库服务器的查询的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring JPA 中跨两个不同的数据库表进行查询

SQL查询单表中跨列唯一值

在 Apache Spark 中跨执行程序共享数据

SQL 查询和 MS Access 查询返回不同的数据

在 SQL Server 中跨两个表协调列

SQL Server 不同数据间建立链接服务器进行连接查询