我正在使用dplyr
和dbplyr
包與我的數據庫進行交互。我有一張擁有數百萬條記錄的表格。我也有一個與我希望過濾的表中的鍵相對應的值列表。通常我會做這樣的事情來過濾表格。dplyr具有大量匹配的數據庫表
library(ROracle)
# connect info omitted
con <- dbConnect(...)
# df with values - my_values
con %>% tbl('MY_TABLE') %>% filter(FIELD %in% my_values$FIELD)
但是,my_values
對象包含了超過50萬項(所以爲什麼我在這裏不提供實際數據)。這顯然是無效的,當他們基本上被放在一個IN
聲明(它基本上掛起)。通常,如果我正在編寫SQL,我會創建一個臨時表並編寫一個WHERE EXISTS
子句。但在這種情況下,我沒有寫權限。
如何使此查詢在R中更高效?
也許是一個內部連接? – rsmith54