SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.05.2010 10:41:44

keysi_
Участник
Зарегистрирован: 18.05.2010
Сообщений: 16

Помогите с запросом.

В базе данных имеются две таблицы:
db_my_category - категории новостей:
id  |  name  |   runame  | off |
1  |  animal | животные |  1 |
2  |  politic |  политика |  1 |
3  |  world  |   в мире   |  1 |
4  |  test   |     test     |   0 |

db_my_news - собственно сами новости
id  |  title    | text  |     category      |     date      |
1  |  news1 | sdfds |          1           | 05/05/2005 |
2  |  news2 |  czdx |          1           | 05/05/2005 |
3  |  news3  |  zxcz |         3           | 05/05/2005 |


Задача: получить список категорий и количество новостей в этих категориях, типа такого:
id  |  name  |   runame  | count |
1  |  animal | животные |   2    |
2  |  politic |  политика |   0    |
3  |  world  |   в мире   |   1    |


Надеялся что заработает что нибудь такое, но синтаксис не позволяет, куча лагов:
SELECT category.id AS id, category.name AS name, category.runame AS runame, COUNT(publ.*) AS count
FROM db_my_category AS category, db_my_news AS publ
WHERE category.off <> '0' AND publ.category = category.id
ORDER BY id ASC

ps Важное условие: все необходимо вместить в один запрос, для уменьшения нагрузки на сервер.

Отредактированно keysi_ (18.05.2010 10:53:58)

Неактивен

 

#2 18.05.2010 11:23:26

keysi_
Участник
Зарегистрирован: 18.05.2010
Сообщений: 16

Re: Помогите с запросом.

Всем спасибо. smile Решение найдено.

SELECT category.id AS catid, category.name AS name, category.runame AS runame, (SELECT COUNT(*) AS count FROM db_my_news AS publ WHERE publ.category=catid) AS count
FROM db_my_category AS category
WHERE category.off <> '0'
ORDER BY id ASC

Как всегда, все было проще чем казалось. Хотя все же получилось очень громиоздко.
Может есть еще идеи?

Отредактированно keysi_ (20.05.2010 08:06:29)

Неактивен

 

#3 18.05.2010 13:38:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите с запросом.

Ну, да, или обычный JOIN с группировкой. Я предпочитаю JOIN, но это дело вкуса smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson