티스토리 뷰

Java & Kotlin

sql_mode=only_full_group_by

필자A 2021. 8. 30. 17:16

 

쿼리는 거의 신경을 안 써서

프로젝트를 진행하는데

쿼리 쪽에서 시간을 엄청 많이 잡아먹었다.

 

일단 저 문구는

group by 절에서 다루지 않은 값을

select으로 뽑으려고 하면

나온다 mysql 버전 5.7전에는

group by절에 올리지 않아도 select에 잘 나왔다고 한다.

 

a테이블과 b테이블이

연관 테이블이고

a테이블의 pk기준으로 b테이블의 값들을

뽑으려고 했다.

 

a테이블의 1개 데이터의 pk를 참조하는 값이

b테이블에 4 개행이 있으면 이중 제일 최근 값 하나만

가지고 오려고 했으나

 

쉽지 않았다. 서브 쿼리 안에 넣으니 메인 쿼리에서는

서브 쿼리에서 참조할 수 없다.

 

그래서 외부 group by에 서브 쿼리 칼럼들을 올리니

예상과 다른 답이 나왔다.

 

 

set @@GLOBAL.sql_mode='';

or

 

set sql_mode ='STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION';

 

 

위에는 제약조건을 모두 지우는 것 같고

아래는 걸림돌이 되는 조건 하나만 지우는것 같다.

 

하지만 학습부족이므로 기초를 더대고

정말 급할 때만 사용하자.

 

로컬 환경에서는 저렇게 지울 수 있지만

못 지울 수도 있으니 말이다.

 

반응형

'Java & Kotlin' 카테고리의 다른 글

apache와 tomcat  (0) 2021.09.30
java logback Library  (0) 2021.09.27
java)linkedList 구현  (0) 2021.08.13
패스워드 암호화(작성중)  (0) 2021.08.04
mybatis mapper 사용기  (0) 2021.07.31
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함