2012-01-19 9 views
1

今日発生した少しの問題で助けが必要です。今複数のカテゴリに挿入した場合は結果が繰り返されます

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 

(私のウェブサイトはWordPressではありませんが、DB名が前にWPを持っている)も、このスクリプトは、いくつかのカテゴリを除外、私はこのスクリプトを使用し、問題のウェブサイトで、最新の投稿を表示するには

私は今日だけの投稿を取得する必要があるということですので、私は、このスクリプトにこれを追加します。

AND DATE(post_date) >= CURRENT_DATE 

が、これを追加した後、私はいくつかのカテゴリに1だけでなく、多くのポストは、それらが二回あったされていることがわかりや複数回。 この問題を解決するお手伝いができますか? ありがとうございます

助けてください。 post_date以来

+0

説明しようあなたのデータベーススキーマはもう少しです。単純なクエリ( 'SELECT * FROM wp_posts WHERE DATE(post_date)> = CURRENT_DATE()')で試してみて、どれが間違っているかを見つけるために条件を追加することもできます。 –

+0

私は答え、thnxを持っています。 – JoinOG

答えて

1

があなたのGROUP'ingの一部であり、あなたはGROUP BY句の後に以下の権利を追加し、ORDER BY節(WHERE句としてそれを使用していない)の前にする必要があります

... 
HAVING DATE(post_date) >= CURDATE() 
+0

SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックしてください。正しい構文は、 'HAVING DATE(post_date)> = CURDATE()ORDER BY wp_posts.post_date DESC LIMIT 150'の15行目近くで使用してください。 – JoinOG

+0

申し訳ありませんが私は間違いをした、それは動作します。 thnx – JoinOG

関連する問題