![]() |
Помогите с запросом...
Товарищи, выручайте. У меня такая проблемма. Мне надо выводить несколько категорий статей, в которых находятся эти самые статьи. Я сделал запрос на то что бы выводилось сия беда, т.е. выводятся только те категории, которые имеют статьи, а которые нет, не выводятся. Это моя самая главная проблемма. Вот код:
1) SELECT COUNT(articles.cat_id) AS num_articles, categories.cat_name, categories.cat_id 2) FROM categories, articles 3) WHERE articles.cat_id=categories.cat_id 4) OR articles.cat_id!=categories.cat_id 5) GROUP BY categories.cat_name 6) HAVING num_articles>=0 7) ORDER BY categories.cat_name ASC цифры - номер строки, что бы ориентироваться лучше. Я не могу придумать такого условия, что бы num_articles был равен 0 тоже. |
Я думаю что твою проблему скорее всего решит использование оператора LEFT JOIN, без структуры таблиц, и непонятном описании требуемого результата могу предположить что выглядеть это будет приблизительно так (кстати строки 3 и 4 вместе бессмысленны):
1) SELECT COUNT(articles.cat_id) AS num_articles, categories.cat_name, categories.cat_id 2) FROM categories LEFT JOIN articles 3) USING(cat_id) 5) GROUP BY categories.cat_name 6) HAVING num_articles>=0 7) ORDER BY categories.cat_name ASC |
2Hubbitus Спасибо, за отклик я вспомнил все же про LEFT JOIN и у меня все заработало. Твой вариант - это прямо такой же который я тоже составил:)
ЗЫ. Насчет 4 строки, это я сделал только для того, что бы у меня все категории выводились независимо от кол-ва статей, т.к. без оных они просто не выводились:) А то наверное подумал что совчем новичек:) Вообщем спасибо за все! |
| Часовой пояс GMT +4, время: 03:24. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.