За последние 24 часа нас посетили 17542 программиста и 1723 робота. Сейчас ищет 1691 программист ...

Помогите составить запрос к базе.

Тема в разделе "PHP и базы данных", создана пользователем C, 24 июн 2006.

  1. C

    C Активный пользователь

    С нами с:
    28 май 2006
    Сообщения:
    326
    Симпатии:
    0
    Работаю над форумом. Структура такая:

    PHP:
    1.  
    2. <?php
    3.  
    4. class Forum_topic {
    5.     var $ID=-1;
    6.     var $name='';
    7.     var $groupID=-1;
    8. };
    9.  
    10. class Forum_post {
    11.     var $ID=-1;
    12.     var $topicID=-1;
    13.     var $authorID=-1;
    14.     var $message='';
    15.     var $date_posted='';
    16.     var $date_mod='';
    17. };
    18.  
    19. ?>
    20.  
    21.  
    Мен надо:

    1. Показать 30 тем, в которых были последние обновления. Для этого я пишу такой запрос:

    $this->post->sql->query($this->post->make_select_query("GROUP BY topicID ORDER BY date_posted DESC LIMIT 30"));

    То есть мне надо выбрать 30 последних постов, у которых тема уникальна.
    Вот вы видели как я это реализовал. Вроде работает, но правильно ли я понимаю значение GROUP BY
    как указатель уникальности темы?

    2. И ещё более сложный вопрос.
    При создании темы может случиться так, что тема создастся, а пост нет. А если поста нет, то предыдущая
    кверя не будет показывать эту тему. Так вот. Как бы мне составить запрос, который просил бы показать темы у которых нет постов? Самый тупой способ это выбрать все темы из таблицы с темами и потом для каждой темы просить показать сколько у неё постов. Но если тем будет много, то это будет долговато. Добавлять в Топег поле количество постов и увеличивать его при каждом добавлении поста и уменьшать при удалении не хочу.
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    http://dev.mysql.com/distinct

    используй транзакции, чтоб такого не случалось.
     
  3. C

    C Активный пользователь

    С нами с:
    28 май 2006
    Сообщения:
    326
    Симпатии:
    0
    simpson
    Спасибо не не много не то. Ну ничё, вроде я и сам врубилсо.

    Я вот щас читаю чужие посты и всё тоже никак в их говокод и говнозадачи врубится не могу чтобы помочь. Наверно и у тебя такая же история со мной.