如果插入多个类别,则重复结果

时间:2012-01-19 20:34:36

标签: mysql

我需要一些帮助解决今天发生的一个小问题。

要显示网站上的最新帖子,我使用这个脚本,这个脚本也排除了一些类别(我的网站不在wordpress中,但db名称在前面有wp)

  SELECT
  ID, 
  post_title, 
  post_content, 
  post_date, 
  GROUP_CONCAT(DISTINCT post_category ORDER BY post_category DESC SEPARATOR ", " ) as "categories"

  FROM 
  wp_posts, 
  wp_term_relationships,
  wp_term_taxonomy 

  WHERE wp_posts.post_status = "publish"    
  AND wp_term_relationships.object_id = id
  AND wp_term_taxonomy.taxonomy= "category"
  AND !(wp_term_taxonomy.term_taxonomy_id = 34472 ||
        wp_term_taxonomy.term_taxonomy_id = 34473 ||
        wp_term_taxonomy.term_taxonomy_id = 34474 ||  
        wp_term_taxonomy.term_taxonomy_id = 17)
  AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id

  GROUP BY ID, post_title, post_content, post_date 
  ORDER BY wp_posts.post_date DESC LIMIT 150

现在问题是我只需要获取今天的帖子,所以我在这个脚本中添加:

AND DATE(post_date) >= CURRENT_DATE

但是在添加这个之后,我看到很多帖子在某些类别中不仅是一个,它们显示两次或更多次。 有人可以帮我解决这个问题吗? 谢谢

请帮忙。

1 个答案:

答案 0 :(得分:1)

由于post_date是您的GROUP的一部分,您应该在GROUP BY子句之后和ORDER BY子句之前添加以下内容(不要将其用作{{} 1}}子句):

WHERE