Screamer, Немного не то, нужно из первой таблице вывести всё, а в другой просто посчитать колличество, относительно первой.
А в этом примере, как я понимаю выводится всё и новость, и комментарии к ней
Screamer, Немного не то, нужно из первой таблице вывести всё, а в другой просто посчитать колличество, относительно первой.
А в этом примере, как я понимаю выводится всё и новость, и комментарии к ней
SELECT n.*, COUNT(c.*) as count_comments FROM `news` AS n
INNER JOIN `comm` AS c ON `n`.`id` = `c`.`id_news`
ORDER BY `n`.`id` DESC
LIMIT ".$start.", ".$on_page."SlyDeath (18.02.2013 / 20:26)Голые запросы - это что такое?
SELECT n.*, COUNT(c.*) as count_comments FROM `news` AS n INNER JOIN `comm` AS c ON `n`.`id` = `c`.`id_news` ORDER BY `n`.`id` DESC LIMIT ".$start.", ".$on_page."
Нинаю так не, го
dont,
SELECT `n`.*, COUNT(DISTINCT `n`.`id`) AS `count`
FROM `news` AS `n`
INNER JOIN `comm` AS `c`
ON `n`.`id` = `c`.`id_news` L!MP (18.02.2013 / 20:32)Тут колличество чего считается? Нужно ведь колличество комментариев к новости считать
dont,SELECT `n`.*, COUNT(DISTINCT `n`.`id`) AS `count` FROM `news` AS `n` INNER JOIN `comm` AS `c` ON `n`.`id` = `c`.`id_news`
dont, Это вот такие как выше. Я обычно фреймворками пользуюсь, там Query Builder'еры. Как пример из Коханы
DB::select()->from('table')
->and_having_open()
->and_having('category', '=', 1)->or_having('brand', '=', 4)
->and_having_close()
->and_having('disabled', '=', 1);SlyDeath, Мне бы хоть на процедурном научиться :-)
Можно было обычный запрос сделать, а потом в цикле еще один, на подсчет колличества комментариев из другой таблице. Но это как-то не рационально получится. К примеру десять новостей на странице - это будет еще десять запросов, чтоб посчитать число комментариев к каждой новости. Ненадо насиловать базу ![]()
dont, Вряд ли у вас тысячи посетителей и не надо боятся нагрузки. =) Мне такие таблички в руки я бы собрал запрос, а так непонятно чего делать то.
dont, можно проще, сейчас не за компом, выбирать нужно коммы и джоинить новости. я бы так сделал, там и количество и имя и прочее, и по страницам разбить можно
Попробуй так
SELECT n.*, COUNT(c.id_news) AS comment_count FROM news AS n
LEFT JOIN comments AS c ON c.id_news = n.id
GROUP BY `n`.`id`
ORDER BY `n`.`id` DESC
LIMIT 20