В общем ситуация какая: есть статьи, на них можно оставлять комментарии. И в превью статьи хочется выводить: 12.12.2008 Мегановость Свершилось чудо... Тра-та-та, Тра-та-та... Читать полностью/Обсудить... Комментариев оставлено (10) Участников (3) Структура таблиц, думаю тривиальна news (id, content) - таблица с новостями comments (id, id_news, id_master, author(varchar), data, comment) В конечном итоге, мне нужна одна строка, верно? Дата, Тема, Предновость, К-во уч-ков, к-во уников. Как написать такой запросик. помогите
Sergey89, я думал об этом. Но это надо будет не забывать о целостности при добавлении комментов и модерировании... В принципе, ничего сложного, но будет оптимальнее в плане запросов. Да.. все таки так будет правильнее. Наверное, мне надо было это услышать.. Спс
Я делал себе поля cuunt_* и потом триггер на инсерт в комменты и на удаление В нескольких местах такой подход реализован
Вльдемар, проблема только что тригеры я как-то мелкомягкий скул писал, да уже и не помню как это было... Можешь выложишь что у тебя получалось?
[sql]CREATE TRIGGER count_it AFTER INSERT ON comments FOR EACH ROW BEGIN IF (SELECT count(*) from comments where master_id = NEW.master_id and news_id=NEW.id) > 0 UPDATE news SET count_field = count_field+1 SET count_unic_field = count_unic_field+1 WHERE id = NEW.id_news ELSE UPDATE news SET count_field = count_field+1 WHERE id = NEW.id_news END IF; END;[/sql] Что-то вроде этого. Если MySQL не поддерживает if внутри update, что скорее всего. Если поддерживает, то [sql] UPDATE news SET count_field = count_field+1 IF (SELECT count(*) from comments where master_id = NEW.master_id and news_id=NEW.id) > 0 SET count_unic_field = count_unic_field+1 END IF WHERE id = NEW.id_news; [/sql]