查询在旧版MySQL上失败

时间:2017-05-23 09:53:44

标签: mysql sql

嗨,所以我正在研究一个项目,事实证明生产机器上的MySQL版本与我在本地的版本不同,这导致了本地运行的查询导致生产错误的情况。

失败查询的示例如下:

SELECT MONTH(date) month
     , YEAR(date) year
     , SUM(distinct_totals.total) balance
  FROM 
     ( SELECT DISTINCT totals.*
                     , trans_data.date 
                  FROM totals
                  JOIN trans_data
                    ON totals.trans_data_id = trans_data.id
                 WHERE totals.id IN (1085)
                   AND trans_data.date BETWEEN '2016-04-05' AND '2017-04-04' 
     ) distinct_totals
 GROUP 
    BY year
     , month

在我的本地版本上运行正常:

Ver 14.14 Distrib 5.7.18

但是给出了错误:

Mysql2::Error: Unknown column 'totals.*' in 'field list'

在版本中:

Ver 14.14 Distrib 5.6.31

有没有明显的原因,因为版本之间的变化导致了这个?

1 个答案:

答案 0 :(得分:0)

此错误:

  

Mysql2 ::错误:'字段列表'

中的未知列'总计。*'

暗示你有

select `totals.*`

查询中的某个地方。您需要删除外部反引号或将它们限制为一个标识符:

select `totals`.*
select totals.*