mysql 테이블 그룹 조인 좀 질문 드립니다.
본문
1. nameTable 이라는 테이블에는
name / membernum / jusocode
김개똥 12 1234
김개똥 12 1234
홍길동 13 1232
마동석 14 1231
2번 MeberGroup 이란 필드에는
groupnum / jusocode /
1 1231
2 1234
3 1232
이런식으로 존재 하는데 두개의 테이블을 조인해서 1번 테이블의 이름으로 그룹으로 묶으면서
정렬은 2번 테이블의 그룹 넘버 순대로 정렬을 하려고 하는데
SELECT u.*
FROM nameTable u
JOIN MeberGroup cat ON u.jusocode = cat.jusocode
ORDER BY cat.groupnum
이렇게 하면 조인이 잘되고 그룹으로 안묶었으니 잘 나옵니다.
그런데 그룹으로 묶을려고
SELECT u.*
FROM nameTable u
JOIN MeberGroup cat ON u.jusocode = cat.jusocode
GROUP u.name
ORDER BY cat.groupnum
이렇게 하면 1064 에러가 나네요
뭐가 잘못된 걸까요 ?
먼저 읽어 주셔서 감사에 인사 드립니다.
답변 2
에러 메시지는 다 적어 주시기 바랍니다.
GROUP u.name
==>
GROUP BY u.name
에러를 보면 u.name 으로 그루핑이 되었지만 num_no 가 숫자이므로 sum, max, min 같은 집계함수를 쓰지 않으면 안된다는 뜻입니다.
근데 그거만 해결하면 다른 필드도 똑같은 문제가 있겠네요
u.* 으로 하지말고 u.name, max(u.num_no) num_no 로 일단 하면서 필요한 컬럼을 추가하세요