2011-09-25 3 views
0

다음은 Wordpress에서 user_meta 세부 정보를 가져 오는 SQL 명령입니다. 하나의 테이블에 데이터를 가져오고 각 열의 각 사용자에 대한 정보로 사용자 정보 당 한 행을 얻으려면 문제가 없지만이 방법의 작동 방식을 찾으려고합니다. 누구든지 아래 설명에 충분히 친절 할 수 있습니까? :Wordpress에서 user_meta를 가져 오기위한 일반 SQL에 대한 설명

도움 주셔서 감사합니다.

SELECT 
    u.id, u.user_login, 

당신이 소스 테이블을 포함하는 부분 얹는 :

답변

0

확실하지 당신이 설명하려는 어쨌든, 우리가

이 부분을 이동 어떤 부분 당신이 원하는 열 지정에 관한

left join를 사용하여
FROM wp_users u 
    LEFT JOIN wp_usermeta m ON u.ID = m.user_id 

에는 일치가없는 경우에도 당신은 당신이 wp_users 행을 얻을 것이다 있는지 확인. ON u.ID = m.user_id 행을 wp_userswp_usermeta 사이에 연결하십시오.

분명히, wp_usermeta은 키 - 값 테이블이고이 키가 관심있는 제한합니다.

AND m.meta_key IN ('title', 'first_name', 'last_name', 'suburb', 'state', 'country', 'postcode', 'contact_no', 'email', 'occupation', 'workplace', 'maternitybg', 'trainingdate', 'traininglocation', 'coltraining', 'isinstructor', 'gender', 'idf_indig_tsi', 'idf_ct_ld', 'comments') 

마지막으로 u.ID 각각의 고유 한 값을 출력 한 행을 만들 것입니다 GROUP BY 절있다.

GROUP BY u.ID 

사례 목록을 사용하여 필드 목록에 약간의 트릭이 있습니다. m.meta_key'title' 동일한 경우

MIN(CASE m.meta_key WHEN 'title' THEN m.meta_value END) AS title, 

먼저 그렇지 않으면 값이 null에 의한 것, 값을 m.meta_value를 얻을.

CASE m.meta_key WHEN 'title' THEN m.meta_value END 

당신은 분() 값을 얻을 것이다 지정된 사용자에 대한 wp_usermeta에 하나 이상의 'title' 키가있는 경우. 제목 '버스 운전사'는 '운전 기사'라는 제목 앞에 선택됩니다.

MIN(CASE m.meta_key WHEN 'title' THEN m.meta_value END) 

그리고 마지막으로 열 별칭 title을 가져 왔습니다.

MIN(CASE m.meta_key WHEN 'title' THEN m.meta_value END) AS title, 
관련 문제