2011-02-01 70 views
0

试图构建一个有点复杂的WordPress查询。通过最新帖子WordPress查询帮助

  1. 把所有的WordPress作者
  2. 有10分以上的帖子发表(我遇到什么麻烦)
  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 

哪些精美返回的一切。

只有当我加入这个WHERE子句,确实查询休息

post_count > 9 

我收到此错误信息:在

未知列'POST_COUNT 'where子句'

任何想法,为什么这是happing?我的理论:

  1. 不会与分组
  2. 工作或MySQL不允许超过一个AS语句

如果你能提供一些线索,我将不胜感激。

谢谢。

回答

1

变化GROUP BY

后查询post_count > 9

HAVING post_count > 9的WHERE部分的条件最终的查询将会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 2011-02-01 19:35:47

+0

我更改了帖子以显示完整查询 – Ass3mbler 2011-02-01 19:36:57

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;