본문 바로가기
MySql

MySQL mysql에서 여러 행을 하나의 행과 여러 열로 병합

by 베이스 공부 2020. 9. 27.
반응형

MYSQL에서 작업 중이며 뷰로 가져올 사용자 데이터를 추출해야합니다. 이메일 클라이언트의 데이터를 사용할 것이므로 앱 레이어에서이 작업을 수행 할 수 없습니다.

문제는 사용자의 각 데이터 필드가 별도의 행에 포함되어 있다는 것입니다 (이는 Wordpress가 데이터 구조를 설정하는 방법입니다).

예를 들어 wp_usermeta에는 다음과 같이 각 사용자에 대한 여러 데이터 행이 있습니다.

user_id   meta_key       meta_data
   2      first_name     Jane
   2      last_name      Austin
   2      email          jane@me.com
   3      first_name     Jack
   3      last_name      Palmer
   3      email          jack@me.com

다음과 같이 데이터를 하나의 행, 별도의 필드로 결합해야합니다.

user_id  first_name  last_name  email
2        Jane        Austin     jane@email.com
3        Paul        Parker     jack@email.com

나는 주변을 검색했지만 어디서나 정확한 문제를 찾을 수 없습니다 (많은 연결을 찾았지만 필요한 것은 아닙니다).

 

해결 방법

 

이 열만 관심이있는 경우 다음과 같이 작동합니다.

SELECT um.user_id
   , fn.meta_data AS first_name
   , ln.meta_data AS last_name
   , e.meta_data AS email
FROM wp_userMeta AS um
LEFT JOIN wp_user_Meta AS fn ON um.user_id = fn.user_id
   AND fn.meta_key = 'first_name'
LEFT JOIN wp_user_Meta AS ln ON um.user_id = ln.user_id
   AND ln.meta_key = 'last_name'
LEFT JOIN wp_user_Meta AS e ON um.user_id = e.user_id
   AND e.meta_key = 'email'

 

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

 

 

반응형

댓글