使用RMySQL包的dbGetQuery查询多个表

时间:2013-11-19 14:07:37

标签: r multiple-tables sqldf rmysql dbconnection

在dbConnect的帮助下,与SQL DB(例如,DB1和DB2)建立了多个连接。如何编写涉及DB1和DB2表的查询? dbGetQuery是否只允许查询一个DB?在建立数据库连接后,是否可以利用sqldf包?

1 个答案:

答案 0 :(得分:0)

这不是您正在寻找的答案,但我遇到了同样的问题。

简而言之,我会放弃在SQL中的1个(或更多个)DB中的表之间进行任何连接/分组/子查询的想法。使用R中较新的大数据包,特别是dplyr或data.table,几乎没有必要。我可以想到SQL更快的唯一例外是当你的查询结果足够大以占用太多RAM时。

对我来说,一个有趣的用例如下:来自MPP数据库的我的表大约是20B行。问题:查询整个2M行的结果集,并使用dplyr :: group_by()对3个变量进行分组,或者只在SQL中执行GROUP BY以返回100k行的最终结果。

时间明智,总是有一个临界点,其中R或SQL更快,除了可能是MySQL中的维度表连接,R几乎总是更快。 (我的例子是我硬件的转折点。)

dplyr与SQL一样易于使用,我不确定是否需要再问这个问题了。