본문 바로가기
MySql

MySQL 동일한 열 값을 가진 mysql 행을 하나의 행으로 그룹화하는 방법은 무엇입니까?

by 베이스 공부 2020. 11. 8.
반응형

두 개의 테이블, 키워드 및 데이터가 있습니다.

테이블 키워드에는 2 개의 열 (id, keyword)이 있고 테이블 데이터에는 3 개의 열 (id [keyword.id의 외래 키], 이름, 값)이 있습니다.

이 쿼리를 사용하고 있습니다.

SELECT k.id, d.value, d.name
FROM keywords AS k
INNER JOIN data as d ON k.id = d.id

다음과 같은 결과를 반환합니다.

1 123 name1
1 456 name2
2 943 name1
3 542 name1
3 532 name2
3 682 name3

각 ID는 0에서 3까지의 값을 가질 수 있습니다 (향후 더 많을 수 있음).

동일한 행에서 동일한 ID를 가진 모든 행을 검색하려면 어떻게해야합니까?

처럼

1 123 456
2 943
3 542 532 682

값을 정렬 할 수 있기를 원하기 때문에 이렇게하고 싶습니다.

 

해결 방법

 


 SELECT k.id, GROUP_CONCAT(d.value)
  FROM keywords AS k
  INNER JOIN data as d ON k.id = d.id
  GROUP BY k.id

또한 원하는 값의 정확한 순서를 얻으려면 ORDER BY d.name 을 수행해야 할 수도 있습니다. 이렇게 :

 SELECT k.id, GROUP_CONCAT(d.value ORDER BY d.name separator ' ')
  FROM keywords AS k
  INNER JOIN data as d ON k.id = d.id
  GROUP BY k.id

 

참조 페이지 https://stackoverflow.com/questions/3664393

 

 

반응형

댓글