2017-05-23 12 views
0

こんにちは、私はプロジェクトに取り組んでいます。これは、本番マシン上のMySQLのバージョンが私がローカルに持っているバージョンと異なっていることが判明しました。ローカルでは、生産上のエラーが発生します。次のように古いバージョンの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 

バージョン間でどのような変更がこれを引き起こしたのかはっきりした理由はありますか?

+0

'amount。*'はこのクエリにはありません。だからどこからのエラー?他に関連するクエリはありますか? – Sinto

+0

'DISTINCT totalals。*、'で十分です。 – Sinto

+0

ありがとう、私は今、それが新しいバージョンではなく古いもので動作する理由を説明するドキュメントを知っていますか?ちょうど私の自身の参照のために。 – user2320239

答えて

0

このエラー:

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

は、クエリで

select `totals.*` 

どこかを持っていることを示唆しています。外側のバックティックを削除するか、1つの識別子に限定する必要があります。

select `totals`.* 
select totals.* 
関連する問題