当前位置: 首页 > 知识库问答 >
问题:

对两个不同数据库中的两个表进行自然联接

江嘉悦
2023-03-14

我有两个表:p. test和q。在两个不同的数据库上测试-p和q。

这两个表都有不同的MYSQL连接,并且位于两个不同的服务器上。

我需要做一个自然连接,如下所示:http://www.microshell.com/database/sql/comparing-data-from-2-database-tables/2/

我怎么可能做到呢?我还使用java PreparedStatement来实际运行查询。有没有办法做到这一点?

假设我创建了两个连接到它们中的每一个:

Connection conn1 = DriverManager.getConnection(URLtoPDB, Username,Password);
Connection conn1 = DriverManager.getConnection(URLtoQDB, Username,Password);

我如何激发一个预先准备好的语句,甚至说:select*from p.Test,q.Test

共有3个答案

秦鸿羽
2023-03-14

再次执行副本,将其放入当前数据库的另一个表中,然后进行比较。

仉峻
2023-03-14

从其他答案中的注释来看,似乎需要比较来自不同数据库服务器的两个表。在这种情况下,您必须使用联邦存储引擎。这是必须在数据库服务器上进行的更改。在Java代码中不能这样做。

如果你必须在Java做,并且你不能修改数据库中的任何东西,你必须把所有的数据下载到内存中并手动比较它们。

何涵育
2023-03-14

在查询中,可以在表名之前指定数据库名,如下所示

SELECT
    *
FROM
    [yourdatabase1].[jajal].[j]
    NATURAL LEFT JOIN [yourdatabase2].[jajal_copy] jc
WHERE
     jc.user_id IS NULL
UNION ALL
SELECT
   *
FROM
    [yourdatabase1].[jajal].[j]
NATURAL RIGHT JOIN [yourdatabase2].[jajal_copy] jc
WHERE
    j.user_id IS NULL

您可以根据需要使用不同服务器的用户名

 select
    *
 from
    LocalTable,
      [OtherServerName].[OtherDB].[dbo].[OtherTable]
 类似资料:
  • 问题内容: 在MySQL中,我有两个不同的数据库-我们姑且称之为 一个 和 乙 。 是否可以在数据库 A 中的表与数据库 B中 的表之间执行 联接 ? 问题答案: 是的,假设该帐户具有适当的权限,则可以使用: 您只需要在表引用前面加上它所驻留的数据库的名称即可。

  • 现在我们需要用JOOQ创建left join查询,什么将left join来自两个不同数据库的两个表 示例本机SQL查询(贝娄),我们需要这个查询是建立使用JOOQ框架,而不是使用本机SQL。直到现在我还没有找到任何解决方案,也许JOOQ不支持这个功能

  • 我正在开发一个基于SAAS的站点,我必须将两个DBs中的两个表连接起来,比如说DB1中的table1和DB2中的table2。我必须使用cakephp中的join从表1和表2获取匹配记录,但它会抛出如下错误: 错误:SQLSTATE[42000]:语法错误或访问冲突:1142 SELECT命令拒绝用户'dbname'@'localhost'访问表'table_name'。 有谁能解释一下如何使用c

  • 问题内容: 我有两个要连接的表。 TABLE_A: TABLE_B: RESULT_TABLE: 我试图使用这样的东西: 但是,结果仅包括该列存在于TABLE_A中的行。 有没有办法连接TABLE_A和TABLE_B以产生RESULT_TABLE中显示的结果? 问题答案: 如果要获得所有结果,则需要一个 外部 联接,而不是一个 内部 联接。(内部仅返回匹配的行;外部返回所有行,其中匹配的行“缝合在

  • 问题内容: 这是我的学校项目。我很喜欢eForum的部分。我试图删除一个用户,被删除的用户的所有主题和回复也将被删除。 此方法检索表的第一列的值并将其存储为userID。然后,它将执行delete sql语句以删除某些用户。 对于此方法,它将采用另一个表的第一列的值(该表显示所有线程)并执行delete sql语句。 但是,删除一些用户后,被删除用户的线程和回复仍存储在数据库中。我目前在数据库中使

  • 我有2%s: 我需要这样的联合: 函数不起作用,因为列的编号和名称不同。 我怎么能这么做?