这是我目前的情况:
我有两张表(TB1 和 TB2),除了一列之外完全相同。我有一个 CRON,它从远程 SQL 数据库复制所有内容并刷新 TB1 上的所有内容,删除当前行并插入新行,因此 TB1 是我的源表。
在 TB2 上,我的结构与 TB1 完全相同,但最后一行从 true 变为 false,默认为 false。请参阅下面的示例表:
TB1 +---------------+---------------+---------------+- --------------+ | 编号 | col1 | col2 |col3 | +---------------+---------------+---------------+- --------------+ | 1 | 值1 | val-A |假 | | 2 | 值2 | val-B |假 | | 3 | 值1 | val-C |假| | 4 | 价值3 | val-D |假 | | 5 | 价值4 | val-E |假 | +---------------+---------------+---------------+- --------------+ TB2 +---------------+---------------+---------------+- --------------+ | 编号 | col1 | col2 |col3 | +---------------+---------------+---------------+- --------------+ | 1 | 值1 | val-A |真 | | 2 | 值2 | val-B |假 | | 3 | 值1 | val-C |真 | | 4 | 价值3 | val-D |假 | +---------------+---------------+---------------+- --------------+
如您所见,TB1 有一个额外的行 id=5。col1 和 col2 的组合是唯一的,这就是我要检测的内容,因此 TB1.col1 和 TB1.col2 的任何新组合都应复制到 TB2,同时保留 TB2.col3。
我尝试了以下方法,但在我的情况下它并没有真正起作用,因为它只显示所有不同的值而不是组合的差异:
从( 从 TB1 中选择 TB1.col1、TB1.col2 联合所有 从 TB2 中选择 TB2.col1、TB2.col2 ) TB1 按 TB1.col1 分组 有计数(*)= 1 由 TB1.col1 订购
我知道我错过了 INSERT 部分,但对两者或至少 SELECT 的任何帮助将不胜感激。
谢谢!