Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.06.2012, 18:19
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

помогите организовать запрос в БД
Есть 2 таблицы: статьи и комментарии к ним.
Как можно сделать такой запрос в бд, который бы выбирал все статьи и к каждой статье считал количество комментариев к ней.

И почему то у меня возникают сомнения, что это оптимизировано.

на мой взгляд проще создать в статье отдельное поле с количеством добавленных комментариев к ней (и обновлять его при добавлении комментария), чем для каждой статьи считать количество комментариев.
Ответить с цитированием
  #2 (permalink)  
Старый 16.06.2012, 19:48
Интересующийся
Отправить личное сообщение для sergasd Посмотреть профиль Найти все сообщения от sergasd
 
Регистрация: 14.08.2011
Сообщений: 10

Как то так:
SELECT `a`.*, COUNT(`c`.`id`) `comments_count` 
FROM `articles` `a`
LEFT JOIN `comments` `c` ON(`c`.`article_id` = `a`.`id`)
GROUP BY `a`.`id`


Но, при больших объемах данных будет правильнее ваш вариант с дополнительным полем.
Ответить с цитированием
  #3 (permalink)  
Старый 16.06.2012, 19:56
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

А если у меня вот такая конструкция (с категориями):
SELECT * FROM `articles`
LEFT OUTER JOIN `category`
ON `articles`.`a_cat` = `category`.`cat_id`	
WHERE `it_visible`= 1


Как сюда добавить выборку количества комментов к записи статьи?
Ответить с цитированием
  #4 (permalink)  
Старый 16.06.2012, 22:46
Интересующийся
Отправить личное сообщение для sergasd Посмотреть профиль Найти все сообщения от sergasd
 
Регистрация: 14.08.2011
Сообщений: 10

SELECT `a`.*, `cat`.* , COUNT(`c`.`id`) `comments_count` 
FROM `articles` `a`
LEFT JOIN `category` `cat` ON(`a`.`a_cat` = `cat`.`id`)
LEFT JOIN `comments` `c` ON(`c`.`article_id` = `a`.`id`)
WHERE `a`.`it_visible` = 1
GROUP BY `a`.`id`
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, составить запрос на jQuery Gremlin Общие вопросы Javascript 2 28.09.2011 18:42
Помогите, не проходит POST запрос. Danya Daro Элементы интерфейса 1 03.03.2011 09:12
помогите организовать нахождение значения некоторых функций татьянка Общие вопросы Javascript 7 23.10.2010 11:53
Помогите срочно: нужно организовать технлогию "перетаскивания" Dima00782 Общие вопросы Javascript 7 22.07.2010 11:58
Помогите подставить запрос. BMWSauber Events/DOM/Window 1 07.02.2010 23:13