对比数据库中两张表的数据

本文介绍了如何在SQL中通过内连接找出总表与子表之间的差异,添加标记字段并使用isnull筛选出仅在总表中存在的数据。更新操作示例展示了如何更新特定字段。关键词包括:内连接、标记字段、数据差异、Navicat工具、SQL查询。
摘要由CSDN通过智能技术生成

背景:有一张总表,多张其他表,筛选出主表中有其他表中没有的数据

1、 在 总表中添加一个标记字段 biaoji

2、 用 inner jion 内连接两个表 找出两个表交叉的数据
SELECT a.* from a INNER JOIN b on a.id = b.id

注意:查询的表只能是单表数据,才可以修改数据,所以用 a.* 。如果用 * 查询出的是只读数据。
a表要有主键,目的是能够让Navicat工具找到该条修改数据

3、 添加标记字段数据

4、 用 标记字段 is null 来筛选差异数据
select * from a where a.biaoji is not null

  1. 更新

update RX_SYS_USER12 set ss = ‘1’ where SCHOOL_CODE in (
SELECT a.SCHOOL_CODE from RX_SYS_USER12 a INNER JOIN RX_SYS_USER1 b on a.SCHOOL_CODE = b.SCHOOL_CODE
);

可参考菜鸟教程中的 ‘sql连接’ 这一篇理解。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java连接数据库,然后通过SQL语句查询两张数据,再通过Java代码将查询结果进行比较,找出不同之处。具体的实现方式可以参考以下步骤: 1. 使用JDBC连接数据库,获取数据库连接对象。 2. 使用SQL语句查询两张数据,将查询结果存储到Java。 3. 对比两个结果集,找出不同之处,可以使用Java代码实现。 4. 最后关闭数据库连接。 以下是一个简单的示例代码,用于比较两张数据是否相同: ```java import java.sql.*; public class CompareTables { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "password"; try (Connection conn = DriverManager.getConnection(url, user, password)) { String sql1 = "SELECT * FROM table1"; String sql2 = "SELECT * FROM table2"; Statement stmt1 = conn.createStatement(); Statement stmt2 = conn.createStatement(); ResultSet rs1 = stmt1.executeQuery(sql1); ResultSet rs2 = stmt2.executeQuery(sql2); boolean isDifferent = false; while (rs1.next() && rs2.next()) { if (!rs1.getString(1).equals(rs2.getString(1))) { isDifferent = true; break; } } if (isDifferent) { System.out.println("Tables are different"); } else { System.out.println("Tables are same"); } rs1.close(); rs2.close(); stmt1.close(); stmt2.close(); } catch (SQLException e) { System.out.println(e.getMessage()); } } } ``` 以上代码,我们首先建立了一个test数据库,并在该数据库创建了两张table1和table2。然后使用JDBC连接数据库,分别查询两张数据,并逐行比较两个结果集的每一行数据,如果存在不同之处,则将isDifferent设置为true,两个数据不同。最后根据isDifferent的值输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值