2016-10-28 94 views
1

我正在研究一個ETL測試項目,其中我需要比較兩個不同數據庫中兩個表之間的數據。爲此,我首先使用下面的查詢下載整個表格。在來自兩個不同數據庫的兩個表上使用dplyr的anti_join()

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") 

但在另一種情況下,列名稱被改變(表「C」的列名作爲CLIENT_ID和表「d」已經ClientID的,我無法弄清楚。?做什麼我嘗試使用合併功能,但是,這並不似乎是非常有前途的

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

任何建議,請

回答

3

試試這個:

mismatch_records <- anti_join(table_c, table_d, by = c("CLIENT_ID" = "ClientId")) 
相關問題