在两个不同数据库

时间:2016-10-28 20:17:02

标签: r dplyr

我正在开发一个ETL测试项目,我需要比较来自两个不同数据库的两个表之间的数据。要做到这一点,我首先使用如下查询下载整个表。

  query_table_a <- paste0("SELECT * FROM   MBR_MEAS (NOLOCK)")
  table_a <- as.data.frame(sqlQuery(cn, query_table_a))

然后,我使用了dplyr中的anti_join()。如果两个数据框中的列名相同,那么我的结果是好的。例如(这会返回良好和预期的结果)

mismatch_records <- anti_join(table_a, table_b, by="client_id")

但在另一种情况下,列名称已更改(表格&#39; c&#39;列名称为client_id,表格&#39; d&#39;已经过了clientid,我无法弄清楚要做什么我试过使用合并功能,但这看起来并不是很有希望。

merge(x = table_c, y = table_d, by.x ="CLIENT_ID", by.y = "ClientId", all.x = "TRUE")

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

试试这个:

mismatch_records <- anti_join(table_c, table_d, by = c("CLIENT_ID" = "ClientId"))