【问题标题】:Query on multiple tables using dbGetQuery of RMySQL package使用 RMySQL 包的 dbGetQuery 查询多个表
【发布时间】:2013-12-03 03:11:33
【问题描述】:

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

【问题讨论】:

    标签: r multiple-tables sqldf rmysql dbconnection


    【解决方案1】:

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

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

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

    在时间方面,总是存在 R 或 SQL 更快的临界点,除了可能在 MySQL 中连接维度表之外,R 几乎总是在所有方面都更快。 (我的例子是我的硬件的临界点。)

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

    【讨论】:

    • 所以你的意思是:“将两个表都拉到 R 中,使用 dplyr 或者你要做什么相当于 SQL 连接”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2019-09-22
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多