MySQL запрос - сообщения в блоге и комментарии с ограничением - PullRequest
2 голосов
/ 02 июня 2010

У меня есть 2 таблицы: комментарии и посты. Я хотел бы отобразить список из 15 сообщений и максимум 2 самых последних комментариев под каждой записью в блоге, используя mysql.

схема базы данных выглядит следующим образом

posts_table: 
post_id, post_txt, post_timestamp

comments_table: 
post_id, comment_txt, comment_timestamp

как должен выглядеть запрос mysql, чтобы выбрать 15 постов и связанных с ними комментариев (максимум 2 самых последних на пост)?

спасибо

Ответы [ 2 ]

1 голос
/ 02 июня 2010

MySQL LIMIT

SELECT * FROM posts_table LIMIT 0, 15

И чтобы вытащить самые последние комментарии:

SELECT * FROM comments_table ORDER BY comment_timestamp DESC LIMIT 0, 2

Я оставлю это вам как-нибудь объединить два запроса ...

0 голосов
/ 02 июня 2010

Во-первых, я бы выбрал такие сообщения, как

$resource = mysql_query('SELECT * FROM posts LIMIT 0,10'); //your own query in place here to get posts

    $posts = array();
    while($row = mysql_fetch_assoc($resource))
    {
        $query = sprintf('SELECT * FROM comments WHERE post_id = %d',$row['post_id']);
        $comments = mysql_query($query);
        while($row2 = mysql_fetch_assoc($comments))
        {
            $row['comments'] = $row2;
        }
        $posts[] = $row;
    }

Тогда в вашем шаблоне / представлении

foreach($posts as $post)
{
   //Print out your main posts data here.
   foreach($post['comments'] as $comment)
   {
      //Print out your comments here!
   }
}

Надеюсь, это поможет

...