0

質問のタイトルについては申し訳ありませんが、定義する適切な言葉がありません。

テーブル内の同じ投稿に複数のメディアがあり、以下の形式でデータを出力したい

Post ID 1
------------------------
media1, media2, media3
------------------------

Post ID 2
------------------------
media1, media2, media3
------------------------

so on...

テーブル画像はこちら ここに画像の説明を入力

以下のクエリを使用して上記のテーブルに参加しました

SELECT wp_posts.ID, wp_posts.post_author, wp_posts.post_title, wp_posts.post_status, wp_posts.post_type, 
wp_review_media.post_id, wp_review_media.user_id, wp_review_media.id, wp_review_media.image_name, wp_review_media.`status`, 
wp_users.ID, wp_users.user_login

FROM wp_posts
RIGHT OUTER JOIN wp_users ON wp_users.ID = wp_posts.post_author
RIGHT OUTER JOIN wp_review_media ON wp_posts.ID = wp_review_media.post_id

WHERE wp_posts.post_status = 'publish' AND wp_review_media.`status` = 0

現在、このループを使用して以下の形式で出力を提供しています

<?php
if ($medias) {
    foreach ($medias as $media) {
?> 
        <tr>
            <td><?php echo $media->ID; ?></td>
            <td><?php echo $media->post_title; ?></td>

        </tr>
<?php } 
} else { ?>
        <tr>
        <td>No Record Found!</td>
        <tr>  
<?php } ?>

出力:

Post ID 1
---------
media1

Post ID 1
---------
media2

Post ID 1
---------
media3

Post ID 2
---------
media1

Post ID 2
---------
media2

Post ID 2
---------
media3

so on....

それで、私が上で説明した結果を得る方法を理解するのを手伝ってくれる人はいますか。

どうもありがとう...

4

1 に答える 1

1

ID とメディアのリストだけが必要な場合は、次を使用しますGROUP_CONCAT

SELECT wp_posts.ID, GROUP_CONCAT(wp_posts.post_title) titles
FROM wp_posts
   RIGHT OUTER JOIN wp_users ON wp_users.ID = wp_posts.post_author
   RIGHT OUTER JOIN wp_review_media ON wp_posts.ID = wp_review_media.post_id
WHERE wp_posts.post_status = 'publish' AND wp_review_media.`status` = 0
GROUP BY wp_posts.ID
于 2013-02-23T18:02:39.177 に答える