快速 SQL 类似加入的列添加到 R 中的 data.table

quick SQL Join-like adding columns to a data.table in R

我想要实现的与 SQL 类似

select *
from T left join
     T2 on T1.key2 = T2.key2
     left join T3 on T1.key3 = T3.key3

但在 R 中使用 data.table。具体来说,T2 的 'append' two 列和 T3 的 one 列到第一个 table.
我目前的解决方案看起来像

setkey(t1,key2)
t1 <- t2[t1]
setkey(t1,key3)
t1 <- t3[t1]
setkey(t1,key1) # restore the original key

这会将整个 t1 复制两次,而且不会太快。 'inside' t1 是一个相当大的数据集 ~ 100 万行,t2 和 t3 很小 'mapping' tables.
我认为使用 J(..) 会有所帮助,但我是 data.tables 的新手,无法真正理解如何在此处应用它。
有人可以建议一个更快的加入解决方案吗?谢谢

自从 devel version of data.table, v1.9.5 最近实施了一项功能,可以直接加入 data.tables 而无需使用新的 on 参数设置密钥,我可以为您提供高质量的答案问题:

t1[t2, colT2 := i.colT2, on = c(key2="key2")
   ][t3, colT3 := i.colT3, on = c(key3="key3")
     ][]

它还应该保留 t1 上的原始密钥。