【发布时间】:2020-04-27 22:05:20
【问题描述】:
我可以老实说我已经出路了。
范围。我有两个数据库,其中有表。我想比较这些表是否匹配。
我的做法是:
- 从 db1 table1 获取数据
- 从 db2 table1 获取数据
- 对于 db2 表 1 中的每一行,检查 db1 表 1 中是否存在该确切行
例子:
db1 表 1
- id、column1、column2
- 1, aa, bb
- 2、cc、dd
- 3, ee, ff
db2 表 1
- id、column1、column2
- 1, aa, bb
- 3, ee, aa
id=1 的行将不会产生任何输出,因为它在 db1 table1 中与在 db2 table1 中完全相同。 id=2 的行将不会生成任何输出,因为它完全从 db2 table1 中丢失。 id=3 的行会产生错误,因为 column2 中的值在两个 db 之间是不同的。
我已经设法从两个数据库和表中提取数据,现在我将它们放在两个不同的变量中(二维数组?)。现在问题来了。
当我将内容写入主机时,db1 table1 看起来像这样:
@{id=1; column1=aa; column2=bb} @{id=2; column1=cc; column2=dd} @{id=3; column1=ee; column2=ff}
…为 db2 table1 精简一下:
@{id=1; column1=aa; column2=bb} @{id=3; column1=ee; column2=aa}
我的想法是做这样的事情:
foreach ($row in $db2table1) {
if($db1table1.Contains($row)) {
#all is good
}
else {
#error
}
}
但它不起作用。想法?
【问题讨论】:
-
你不使用
Compare-Object有什么特殊原因吗?
标签: sql arrays powershell contains