【问题标题】:Error in result_create when using sqldf with a "From" variable使用带有“From”变量的 sqldf 时,result_create 出错
【发布时间】:2018-09-13 08:26:14
【问题描述】:
result = sqldf("select * 
           FROM ABC_ocean 
           LEFT JOIN lookup_date 
           ON ABC_ocean.departure_date_local BETWEEN lookup_date.From AND lookup_date.To")

我正在尝试使用上述代码在日期范围内加入两个数据库。我收到以下消息:

Error in result_create(conn@ptr, statement) : near "From": syntax error

有人可以帮我理解我在这里做错了什么吗?

str(lookup_date):

str(ABC_ocean):

【问题讨论】:

  • 不,将所有内容放在一行中是行不通的。我还确保所有字段的格式都相同,即日期
  • 好像是SQL语法错误。尝试在数据库上运行相同的 SQL 语句,您可能会找出问题所在。我怀疑使用From 作为不带引号的列名可能是个问题,因为它是一个 SQL 关键字。

标签: r sqldf


【解决方案1】:

FROM 是保留字。这不是FROM 的第一个实例,而是列名From。如果这确实是名称,则需要引用。比如:

SELECT * 
FROM ABC_ocean 
LEFT JOIN lookup_date 
    ON ABC_ocean.departure_date_local BETWEEN lookup_date.`From` AND lookup_date.To

【讨论】:

  • 谢谢您,先生!列名是问题所在。修复它:)
猜你喜欢
  • 1970-01-01
  • 2021-10-12
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
相关资源
最近更新 更多