Нужно сделать то же, что на этом форуме называется "Найти ваши сообщения" В существующем виде форум выводит все сообщения пользователя p.poster_id=$value по несколько раз, даже если они повторяются в одной теме. Нужно, чтобы функция выводила топик пользователя только один раз. Какую функцию использовать вместо INNER JOIN или WHERE? PHP: <? case 'show_user_posts': $query = array( 'SELECT' => 'p.id AS pid, p.poster AS pposter, p.posted AS pposted, p.poster_id, p.message, p.hide_smilies, t.id AS tid, t.poster, t.subject, t.first_post_id, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.num_views, t.forum_id, f.forum_name', 'FROM' => 'posts AS p', 'JOINS' => array( array( 'INNER JOIN' => 'topics AS t', 'ON' => 't.id=p.topic_id' ), array( 'INNER JOIN' => 'forums AS f', 'ON' => 'f.id=t.forum_id' ), array( 'LEFT JOIN' => 'forum_perms AS fp', 'ON' => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')' ) ), 'WHERE' => '(fp.read_forum IS NULL OR fp.read_forum=1) AND p.poster_id='.$value, 'ORDER BY' => 'pposted DESC' ); PS: Сорьте, я малограмотный.
Да, да, очень похоже, но я не знаю, как применить к текущему выражению... По-моему DISTINCT должно относится только к p.id (ID поста). Остальные колонки это тема, автор, число просмотров и пр...