sql >> データベース >  >> RDS >> Mysql

Wordpress SQL:投稿カテゴリとタグを取得

    コメントに記載されているように、集計関数を含めていましたが、「groupby」句は含めていませんでした。

    これでうまくいくようです(GROUP BYを追加しただけです 行):

    SELECT
        p.id,
        p.post_name,
        c.name,
        GROUP_CONCAT(t.`name`)
    FROM wp_posts p
    JOIN wp_term_relationships cr
        on (p.`id`=cr.`object_id`)
    JOIN wp_term_taxonomy ct
        on (ct.`term_taxonomy_id`=cr.`term_taxonomy_id`
        and ct.`taxonomy`='category')
    JOIN wp_terms c on
        (ct.`term_id`=c.`term_id`)
    JOIN wp_term_relationships tr
        on (p.`id`=tr.`object_id`)
    JOIN wp_term_taxonomy tt
        on (tt.`term_taxonomy_id`=tr.`term_taxonomy_id`
        and tt.`taxonomy`='post_tag')
    JOIN wp_terms t
        on (tt.`term_id`=t.`term_id`)
    GROUP BY p.id
    
    
    +---------------+----------+----------------+
    | post_id       | category | tags           |
    |---------------+----------+----------------+
    | 213           | news     | tag1,tag2,tag3 |
    +---------------+----------+----------------+
    | 216           | whatever | tag2,tag3      |
    +---------------+----------+----------------+
    

    ストロベリーありがとう!



    1. SQLServerで日付を別のタイムゾーンに変換する

    2. MySQLバイト配列ストレージ

    3. 別のテーブルからIDを持つ行を選択する

    4. Laravelでonly_full_group_byオプションを無効にする方法