2017-05-23 2 views
0

안녕하세요. 프로젝트에서 일하고 있습니다. 프로덕션 컴퓨터에서 MySQL 버전이 로컬 버전과 다르다는 사실이 알려지면서 쿼리가 실행되는 상황이 발생했습니다 로컬에서는 생산에 오류가 발생합니다. 다음과 같이이전 버전의 MySQL에서 쿼리가 실패했습니다

실패한 쿼리의 예는 다음과 같습니다

Ver 14.14 Distrib 5.7.18 

그러나 오류 제공합니다 :

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

버전에서 내 로컬 버전에서 잘 작동

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.6.31 

버전 간 변경으로 인한 이유가 있습니까?

+0

'amount. *'는이 쿼리에 없습니다. 어디에서 오류가 발생 했습니까? 다른 관련 검색어가 있습니까? – Sinto

+0

'DISTINCT total. *,'이면 충분합니다. – Sinto

+0

고마워요, 지금 테스트 할게요, 이전 버전이 아닌 새로운 버전에서 작동하는 이유를 설명하는 문서를 알고 계신지 압니까. 그냥 내 자신의 참조. – user2320239

답변

0

이 오류 :

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

select `totals.*` 

어딘가에 쿼리가 있음을 시사한다. 바깥 쪽 backticks를 제거하거나 하나의 식별자로 제한해야합니다 :

select `totals`.* 
select totals.*