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数据库中跨不同数据库服务器的查询的主要内容,如果未能解决你的问题,请参考以下文章