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

如何在没有连接的情况下查询多个相关表,并使用JDBC获得一致的数据?

江正德
2023-03-14

我正在创建一个进程,该进程通过JDBC连接到给定的SQL Server数据库,扫描每个表,并读取自上次运行该进程以来插入或更新的任何新数据。出于性能考虑,数据库所有者将不允许此进程对任何表进行联接。

所讨论的情景

  • 表A是表B的父表
  • 此过程从表A中读取数据
  • 在读取表B的过程之前,将新的父记录插入表a,并将新的子记录插入表B
  • 读取表B时,会出现子记录,这些子记录在上一次读取表a的结果集中没有相应的父记录

如何在没有连接的情况下查询多个相关表,并使用JDBC获得一致的数据?

共有1个答案

虞博涛
2023-03-14

如果不能进行连接,那么可能只需要跟踪每个父表的每个检索到的主键,然后使用这些主键查询子行。它将使查询复杂化,并给数据库增加更多压力,因为与在单个联接查询中执行查询相比,您执行的查询更多,但它应该给出相同的结果。

 类似资料:
  • ContactPerson与FrontendUser有关系,是关系的拥有方。现在我有以下问题: 我正在根据活动联系人激活/停用任务中的前端用户。当FrontendUser被禁用或删除时,contactPerson的结果- 附言:

  • 问题内容: 嗨,我目前有3个表格,如下所示。表之间没有通用键 表1-> linkage_Table 表2->材料表 表格3-> Color_Table 我希望得到以下结果集 我想编写一条SQL语句将表连接在一起。 链接表中带有*表示我们将从材料或颜色表中检索所有值。 我现在确实需要此解决方案。一直试图解决这个问题超过5个小时。在此先感谢您的帮助。 问题答案: 一种可能的方法: SQL小提琴 说明:

  • 我们想要自己的db连接配置而不是使用JNDI,但同时,我们也想使用DataSource而不是使用Drive verManager,怎么做?

  • 这两个dataframe没有任何公共列。两个数据流中的行数和列数也不同。我尝试插入一个新的虚拟列,以增加row_index值,如下val dfr=df1.withcolumn(“row_index”,monotonically_increasing_id())所示。 但由于我使用的是Spark2,因此不支持monotonically_increasing_id方法。有没有办法把两个datafram

  • 问题内容: 每次我学习有关php的新知识时,我都不得不重写代码(例如,mysql连接无法在会话中作为句柄传递的事实),我感到很烦。 如何在项目中实现mysql连接?很多人提出了“连接池”,但是在阅读了手册之后,我仍然迷路了。就像:“连接池是mysql_pconnect!” -我:“和…?实际上有什么不同?您可以在会话中传递mysql_pconnect吗?为什么这看似神秘的光环?” 让我解释一下我的

  • 经过多次尝试,我来到这里,根据文档: Firestore为离线功能提供现成的支持。在读取和写入数据时,Firestore使用一个本地数据库,该数据库会自动与服务器同步。当用户脱机时,云Firestore功能将继续,当他们重新连接时,将自动处理数据迁移。 所以,我在中编写了一些代码 工作很好。 但是当我关闭我的互联网连接,并从最近的应用程序中删除应用程序,然后返回我的应用程序时,它在离线状态下不起作