数据库
首页 > 数据库> > 如何在不同的MySQL表中指定具有不同名称的连接变量

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

作者:互联网

我需要连接两个表,其中我想要使用的公共列ID在每个表中具有不同的名称.这两个表有一个“false”公共列名,当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次尝试 – 都失败了 – 传递成员方的公共列是“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"))

标签:r,mysql,dplyr,rmysql
来源: https://codeday.me/bug/20190725/1530129.html