| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Помогите с запросом...
Товарищи, выручайте. У меня такая проблемма. Мне надо выводить несколько категорий статей, в которых находятся эти самые статьи. Я сделал запрос на то что бы выводилось сия беда, т.е. выводятся только те категории, которые имеют статьи, а которые нет, не выводятся. Это моя самая главная проблемма. Вот код:
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 тоже. |
|
|
# 2 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Я думаю что твою проблему скорее всего решит использование оператора 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
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 3 |
|
Guest
Сообщения: n/a
|
2Hubbitus Спасибо, за отклик я вспомнил все же про LEFT JOIN и у меня все заработало. Твой вариант - это прямо такой же который я тоже составил
ЗЫ. Насчет 4 строки, это я сделал только для того, что бы у меня все категории выводились независимо от кол-ва статей, т.к. без оных они просто не выводились А то наверное подумал что совчем новичек![]() Вообщем спасибо за все! |