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 回答