Форум → Разработка → Базы данных → COUNT()
COUNT()
Страницы: ← Следующая страница →
-
есть две таблицы : blog_post, blog_comment
blog_post
id | author_id | title | text | created_at |
blog_comment
id | blog_post_id | author_name | text | created_at |
мне необходимо одним запросом получить все блог-посты и кол-во комментов к ним, т.е. прибл вот так :
id | author_id | title | text | created_at | num_of_comments |
понимаю что надо сделать лефтджойн, но как в нем уже сделать КАУНТ ? -
26 сентября 2008 г. 18:07, спустя 13 минут 20 секунд
SELECT COUNT(`blog_comment`.`id`)
FROM `blog_comment`, `blog_post`
WHERE
`blog_comment`.`blog_post_id`=`blog_post`.`id` AND
`blog_post`.`id`=1 -
26 сентября 2008 г. 18:09, спустя 2 минуты 4 секунды
храни количество камментов в отдельном полеhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
26 сентября 2008 г. 18:10, спустя 36 секунд
NRG, если тебе надо всетаки вытягивать сразу - UNION спасет тебя :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
26 сентября 2008 г. 18:12, спустя 2 минуты
храни количество камментов в отдельном поле
и что при каждом добалении/удалении камента мне апдейтить еще эту тейблу ? -
26 сентября 2008 г. 18:14, спустя 1 минуту 46 секунд
SELECT B.*, COUNT(BC.*) AS `comments`
FROM `blogs` AS B
LEFT JOIN `blogs_comments` AS BC
ON BC.`parent_id`=B.`id`
GROUP BY B.`id`
вобще group by нуженвсе умрут, а я изумруд -
26 сентября 2008 г. 18:16, спустя 2 минуты 39 секунд
я сначала думал просто сделать такSELECT * FROM `sf_blog_post` LEFT JOIN `sf_blog_comment` ON `sf_blog_post`.`id` = `sf_blog_comment`.`sf_blog_post_id`
а потом уже оттуда все вытягивать…
md5, твой вариант по сути тот же… -
26 сентября 2008 г. 18:18, спустя 2 минуты
и что при каждом добалении/удалении камента мне апдейтить еще эту тейблу ?
А что в этом плохого? Добавление комментария происходит реже, нежели выборка. -
26 сентября 2008 г. 18:20, спустя 1 минуту 40 секунд
ну а в чем проблема?
я сначала думал просто сделать такSELECT * FROM `sf_blog_post` LEFT JOIN `sf_blog_comment` ON `sf_blog_post`.`id` = `sf_blog_comment`.`sf_blog_post_id`
а потом уже оттуда все вытягивать…
md5, твой вариант по сути тот же…все умрут, а я изумруд -
26 сентября 2008 г. 18:21, спустя 49 секунд
sap, я не говорю что это песпредельно плохо, но мне кажется так будет неправильно…
меня интересует реально ли получить такой результат который я написал в сабже одним запросом…. -
26 сентября 2008 г. 18:29, спустя 7 минут 50 секунд
NRG, плюс в том что если ты отображаешь список постов и количество камментов к ним. То ты не затрагиваешь другие таблицы. Реши для себя - чаще пишут или читают.https://smappi.org/ - платформа по созданию API на все случаи жизни -
26 сентября 2008 г. 18:30, спустя 1 минуту
select p.*, x.num from pages p, (select count(*) as num from comments c where c.page_id=p.id) as x where 1=1
незнаю насчет мускула у меня в оракле работает -
26 сентября 2008 г. 18:35, спустя 4 минуты 53 секунды
Реши для себя - чаще пишут или читают.
В любом случае, читают чаще. Я считаю, что в первую очередь должна быть оптимизирована выборка. Лучше на один селект инсерт и апдейт, чем каждый раз джойн. -
26 сентября 2008 г. 18:40, спустя 5 минут 40 секунд
sap, я написал для того чтобы задумался NRG, а не ты :))https://smappi.org/ - платформа по созданию API на все случаи жизни -
26 сентября 2008 г. 18:42, спустя 1 минуту 47 секунд
adw0rd, спасибо, твой вариант меня устраивает, сделаю так. =)
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!