2013-06-12 26 views
5

私は複数のワードプレステーブルをクエリしようとしています。私はどのように他のテーブルに基づいてカラムを作成するMySQLクエリ

object_id term_taxonomy_id ID post_date post_title post_excerpt guid term_id name taxonomy 
2356  33  2356 2013-06-07 15:56:54  Test Post for Reports  http://domain.com/?p=2356 7496 Marketing Updates category 
2356  32  2356 2013-06-07 15:56:54  Test Post for Reports  http://domain.com/?p=2356 470  News Updates category 
2356  70  2356 2013-06-07 15:56:54  Test Post for Reports  http://domain.com/?p=2356 46408 Tag Test 1  post_tag 
2356  72  2356 2013-06-07 15:56:54  Test Post for Reports  http://domain.com/?p=2356 46410 Tag Test 2  post_tag 
2356  74  2356 2013-06-07 15:56:54  Test Post for Reports  http://domain.com/?p=2356 46412 Tag Test 3  post_t 

-

はここでここで(それが理にかなって願って申し訳ありませんが、私はこのクリーナーを投稿する方法を見つけ出すことができませんでした)私は何を得るのです今のところ、私が持っているもの

SELECT 
    tr.object_id, 
    tr.term_taxonomy_id, 
    p.ID, 
    p.post_date, 
    p.post_title, 
    p.post_excerpt, 
    p.guid, 
    t.term_id, 
    t.name, 
    tt.taxonomy 
FROM 
    wp_116_term_relationships AS tr, 
    wp_116_posts AS p, 
    wp_116_terms AS t LEFT JOIN 
    wp_116_term_taxonomy as tt ON tt.term_id = t.term_id 
WHERE 
    p.post_type = 'post' 
    AND p.ID = tr.object_ID 
    AND tr.term_taxonomy_id = tt.term_taxonomy_id 
    AND p.post_date > '2013-06-01' 

ですデータを名前フィールドから分離して、それがpost_tagの場合は1つの列(post_tag)にあり、カテゴリの場合は別の(カテゴリ)にあります。たとえば:

object_id term_taxonomy_id ID post_date post_title post_excerpt guid term_id post_tag category 
2356  33  2356 2013-06-07 15:56:54  Test Post for Reports  http://domain.com/?p=2356 7496 Marketing Updates Tag Test 1 
+0

と私はあなたが二つの異なるのcriteriasに基づいて何かをしたいように見えるここで何をしたい、あなたがしたいですかわからないんだけどであるべきカテゴリタクソノミーの投稿を検出するには? –

+0

ありがとうございます。はい、それは私がやろうとしていたものでした。私は以下の答えを使用し、それは完全に働いた! – user1958798

答えて

3

はかなりまっすぐ進むCASE文

SELECT 
    tr.object_id, 
    tr.term_taxonomy_id, 
    p.ID, 
    p.post_date, 
    p.post_title, 
    p.post_excerpt, 
    p.guid, 
    t.term_id, 
    CASE WHEN tt.taxonomy = 'category' THEN t.name ELSE NULL END AS category_name, 
    CASE WHEN tt.taxonomy = 'post_tag' THEN t.name ELSE NULL END AS post_tag_name 
    FROM 
    wp_116_term_relationships AS tr, 
    wp_116_posts AS p, 
    wp_116_terms AS t 
    LEFT JOIN wp_116_term_taxonomy as tt ON tt.term_id = t.term_id 
    WHERE 
    p.post_type = 'post' 
    AND p.ID = tr.object_ID 
    AND tr.term_taxonomy_id = tt.term_taxonomy_id 
    AND p.post_date > '2013-06-01' 
+0

ありがとう、ありがとう、ありがとう!私はSQLの経験がないと私はこれを探して私の髪を引っ張ってきた。それは完璧に働いた! – user1958798

関連する問題