如何根据R数据帧中的对来搜索SQL表



我想检查SQL表中是否存在数据帧中的一对列。例如,在SQL表中,SQL表中存在人员id 1和作业id 100(作为一对(。该人员需要与工作相关联。我该怎么做?在下面的代码中,我不认为这个人与他们的工作配对。如有任何帮助,我们将不胜感激。此外,这是使用R和SQL Server。

person_id job_id
1 100
2 101
3 102
4 102

我认为最好的方法是将帧上传到一个临时表中,然后使用左联接对其进行查询。例如,

dbWriteTable(x, "mytemp", data_to_check, create = TRUE, append = FALSE, temporary = TRUE)
ret <- dbGetQuery(x, "
select t2.*
from mydata t1
left join TABLE t2 on t1.person_id = t2.person_id and t1.job_id = t2.job_id")
dbExecute(x, "drop table mytemp") # not technically required if a temp-table

我要抛出的唯一警告是,并不是所有的DBMS都以相同的方式处理临时表。例如,对于SQL Server,DBI包的temporary=TRUE无法正常工作,您需要使用前导#(本地临时(或##(全局临时(来命名表,然后在引用表时使用这些#引导的表名。

最新更新