gpt4 book ai didi

mysql - 如何在不同的MySQL表中指定不同名称的连接变量

转载 作者:可可西里 更新时间:2023-11-01 07:49:39 24 4
gpt4 key购买 nike

我需要连接两个表,其中我想使用的公共(public)列 ID 在每个表中具有不同的名称。这两个表有一个“假的”公共(public)列名,当 dplyr 采用默认值并连接到列“id”时,该列名不起作用。

下面是这个问题涉及的部分代码

library(dplyr)
library(RMySQL)

SDB <- src_mysql(host = "localhost", user = "foo", dbname = "bar", password = getPassword())
# Then reference a tbl within that src
administrators <- tbl(SDB, "administrators")
members <- tbl(SDB, "members")

这里有 3 次尝试 - 都失败了 - 传递成员端的公共(public)列是“id”而在管理员端是“idmember”的信息:

sqlq  <- semi_join(members,administrators, by=c("id","idmember"))
sqlq <- inner_join(members,administrators, by= "id.x = idmember.y")
sqlq <- semi_join(members,administrators, by.x = id, by.y = idmember)

这是我收到的错误消息类型的示例:

Error in mysqlExecStatement(conn, statement, ...) : RS-DBI driver: (could not run statement: Unknown column '_LEFT.idmember' in 'where clause')

我看到的示例与 R 端的数据表和数据框有关。我的问题是关于 dplyr 如何将“by”语句发送到 SQL 引擎。

最佳答案

在下一个版本的 dplyr 中,您将能够:

inner_join(members, administrators, by = c("id" = "idmember"))

关于mysql - 如何在不同的MySQL表中指定不同名称的连接变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com