0

我目前正在尝试编写 SQL 来验证已从一个应用程序迁移到另一个应用程序的数据计数。

正在迁移的主表之一有时包含目标应用程序中已存在的主键,因此需要对其进行更改。这导致我的计数不匹配。

我有这些更改的主键的参考表,但我不确定如何将此参考表合并到我的左连接中。

我真的不知道如何包含表 A 中的键可能是表 B 上的键或存储在参考表中的新键的条件?

select count(*)
from table_b b
  left join table_a a on
            b.key = a.key
  where a.key is null;

参考表真的很简单,两个列,old_number,new_number。它将仅包含在将表 A 中的键加载到表 B 之前需要更改的条目。

old_number, new_number
12345678, 13345678
23456781, 24456781

我怎样才能包括这种情况?

select count(*)
from table_b b
  left join table_a a on
            b.key = (a.key or new_number if it exists)
  where a.key is null;

因此,如果查询可以在引用表中包含 new_numbers,那么迁移计数应该与表 A 中的计数匹配。

4

1 回答 1

1

This should work

select count() from table_b b, table_a a where b.key = a.key UNION select count() from table_b b, reference_table re where b.key = re.new_number;

于 2019-08-14T11:35:17.983 回答