0

3 つの mySQL データベース テーブル 1 ~ 3 があります。私の目標は、R dplyr を使用して、これらのテーブルに対して左結合操作と内部結合操作を実行することです。R で dbplyr を使用して、元の SQL コードを dplyr ワークフローに変換しようとしています。元の SQL クエリの一部は次のようになります。

INNER JOIN table3 ON tabl1.well = table3.well AND table2.plex LIKE table3.set

これまでの私の R コードは次のようになります。

library(RMySQL)
library(dbplyr)
library(dplyr)

t1 <- tbl(con,'table1')
t2 <- tbl(con,'table2')
t3 <- tbl(con,'table3')
st <- select(t2,set) %>% filter(!duplicated(set))

t1 %>% left_join(t2,.,by=c('d_id'='p_id') %>%
    inner_join(t3,by='well') %>%
    filter(plex %in% st) %>%      # this part is wrong!!
    collect()

上記の R コードを実行すると、結果は SQL クエリとは異なります。SQL クエリの内部結合部分を R の dplyr 構文に変換する正しい方法を知りたいです。2 つの列に対する単純な inner_join は、dplyr では非常に簡単です。しかし、AND 句と LIKE 句を含む部分を dplyr 用語に翻訳するのに苦労しています。残念ながら、この例の複製可能なデータはありません。

4

1 に答える 1