2011-02-01 2 views
0

다소 복잡한 WordPress 쿼리를 작성하려고합니다. 최근 글 모든 워드 프레스 저자에게WordPress 질문 도움말

  1. 풀 (나는에 문제가 무엇인지) 10 이상 게시 된 게시물
  2. 정렬 저자와
  3. 만 저자 : 하나 개의 쿼리에서, 나는에 노력하고있어.

    SELECT wp_users.ID, display_name, user_url, user_email, MAX(post_date) as date FROM wp_users, wp_posts WHERE wp_users.ID = wp_posts.post_author AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'post' GROUP BY display_name ORDER BY date DESC; 
    

    이 쿼리는 모든 저자을 반환 심지어 9 이하 게시 된 게시물과 함께 :

여기 내 원래 쿼리입니다.

SELECT wp_users.ID, display_name, user_url, user_email, MAX(post_date) as date, COUNT(post_date) as post_count FROM wp_users, wp_posts WHERE wp_users.ID = wp_posts.post_author AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'post' GROUP BY display_name ORDER BY date DESC; 

이 쿼리에서 내가 추가 한 것을 볼 수 있습니다 :

COUNT(post_date) as post_count 

아름다운 모든 것을 반환 여기

는 게시물에 대한 계수와 함께 쿼리입니다.

내가 절,

post_count > 9 

내가이 오류 메시지가 얻을 쿼리 휴식 않는 경우이 추가 할 때 그것은 단지의 :의

알 수없는 열 'POST_COUNT'을 'where 절'

왜 이것이 어슬렁 거리는가? 내 이론 :

  1. 그룹화 작동하지 않습니다 또는 MySQL은 문이 되거 수 있다면, 나는 그것을 대단히 감사하겠습니다

AS 개 이상을 허용하지 않습니다.

감사합니다.

답변

1

변경 GROUP BY

후 쿼리 HAVING post_count > 9post_count > 9

의 WHERE 부분의 조건은 최종 쿼리 당신은 "HAVING"연산자를 찾고 SELECT wp_users.ID, display_name, user_url, user_email, MAX(post_date) as date, COUNT(post_date) as post_count FROM wp_users, wp_posts WHERE wp_users.ID = wp_posts.post_author AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'post' GROUP BY display_name HAVING post_count > 9 ORDER BY date DESC;

+0

여기서 나머지 검색어와 관련하여 HAVING 절을 사용합니까? – user598952

+0

전체 쿼리를 표시하도록 게시물을 변경했습니다. – Ass3mbler

+0

GROUP BY 후 –

1

될 것입니다.

SELECT wp_users.ID, display_name, user_url, user_email, MAX(post_date) as date, COUNT(post_date) as post_count FROM wp_users, wp_posts WHERE wp_users.ID = wp_posts.post_author AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'post' GROUP BY display_name HAVING post_count>9 ORDER BY date DESC; 
+0

감사! 이것은 트릭을했다. – user598952