我想检查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
无法正常工作,您需要使用前导#
(本地临时(或##
(全局临时(来命名表,然后在引用表时使用这些#
引导的表名。