반응형
두 개의 테이블, 키워드 및 데이터가 있습니다.
테이블 키워드에는 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
반응형
'MySql' 카테고리의 다른 글
MySQL 이름이 모음으로 시작하고 끝나는 지 확인하는 SQL 쿼리 (0) | 2020.11.08 |
---|---|
MySQL Workbench에서 열 플래그는 무엇을 의미합니까? (0) | 2020.11.08 |
MySQL 오류 1067 (42000) : 'created_at'에 대한 잘못된 기본값 (0) | 2020.11.08 |
MySQL WooCommerce : 데이터베이스에서 제품 찾기 (0) | 2020.11.08 |
MySQL 자동 완성을 위해 PHP와 MYSQL의 회사 이름을 모호하게 일치시키는 방법은 무엇입니까? (0) | 2020.11.07 |
댓글