2013-08-15 4 views
0

몇 가지 WP 테이블 중 하나를 선택해야하는데, 그 중 하나는 특정 키가있는 사용자 정의 필드 값입니다. 문제는 일부 게시물에이 키가있는 맞춤 필드가 없지만 검색어와 일치하는 것입니다. 질문은 그렇습니다.이 키가있는 사용자 정의 필드가없는 게시물도 선택하려면 어떻게해야합니까? 사용자 정의 필드가없는 게시물의 필드 값은 0으로 설정해야합니다. 나는 COALESCE와 같은 것으로 생각했지만 잘못 사용하거나이 경우 사용할 수 없습니다. 지금까지의 쿼리는 다음과 같습니다.MySQL 쿼리, WP 사용자 정의 필드

그렇듯이 쿼리는 사용자 지정 필드 'eps'가없는 게시물이 없어도 필요한 모든 것을 출력합니다. and wp_postmeta.meta_key='eps'을 제거하면이 게시물이 출력되지만 wp_postmeta.meta_value 필드에 잘못된 값이 표시됩니다.

답변

3

지금까지 내가 당신이, 당신이 당신 wp_postmeta가 LEFT JOIN에 가입 변경하고 떠나 조인에 해당 테이블에 WHERE 조건을 이동 원하는 것을 이해;

SELECT lists.id, lists.`type`, lists.`status`, lists.watched_eps, 
     lists.score,wp_posts.post_title,wp_posts.post_name,wp_terms.slug, 
     wp_postmeta.meta_value 
FROM anime_lists 
INNER JOIN wp_posts 
    ON wp_posts.ID = anime_lists.post_id 
LEFT JOIN wp_postmeta 
    ON wp_postmeta.post_id = anime_lists.post_id 
AND wp_postmeta.meta_key='eps' 
INNER JOIN wp_term_relationships 
    ON (wp_posts.ID = wp_term_relationships.object_id) 
INNER JOIN wp_term_taxonomy 
    ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) 
INNER JOIN wp_terms 
    ON(wp_terms.term_id = wp_term_taxonomy.term_id) 
WHERE lists.id=1 
    AND wp_term_taxonomy.taxonomy = 'category' 
GROUP BY lists.`post_id` 
ORDER BY lists.`status`, wp_posts.post_title 
+0

트릭을 완료 한 것으로 보입니다. 'wp_postmeta.meta_value'를 COALESCE (wp_postmeta.meta_value, 0)로 변경했으며 필요한 것을 수행 한 것 같습니다. 고마워. –

관련 문제