powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / HAS_MANY и COUNT
4 сообщений из 4, страница 1 из 1
HAS_MANY и COUNT
    #38953543
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, понимаю, что задача простецкая, но никак не могу одолеть.
Суть: Есть таблица блогов, есть таблица категорий. Связаны has_many(с доп. таблицей "blog_id и cat_id" соответственно)

Вопрос: Как получить кол-во категорий у каждого блога? Но с условием что и категория и блог могут быть просто созданы и не привязаны никуда(в таком случае у этого блога нужно вывести 0).
...
Рейтинг: 0 / 0
HAS_MANY и COUNT
    #38953578
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот у меня получилось так. Верно я мыслю?
Код: sql
1.
2.
3.
4.
5.
SELECT COUNT(companies.id) AS `count`, `blogs`.* FROM `blogs` 
LEFT JOIN `blogs_has_companies` ON `blogs`.`id` = `blogs_has_companies`.`blogs_id` 
LEFT JOIN `companies` ON `blogs_has_companies`.`companies_id` = `companies`.`id` 
GROUP BY `blogs`.`id` 
ORDER BY `count`, `name`
...
Рейтинг: 0 / 0
HAS_MANY и COUNT
    #38953632
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
araman,

работает?

Оптимизация: А зачем вы сджойнились с таблицей компаний, когда тоже самое значение идента уже есть в таблице связи?

Замените на COUNT(DICTINCT blogs.companies_id) и можно будет удалить второй левый джойн...

А distinct нужен на тот случай, если у вас компания может быть привязана к блогу более одного раза... :)
...
Рейтинг: 0 / 0
HAS_MANY и COUNT
    #38953636
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, работает.
Понял замечания. Исправил :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / HAS_MANY и COUNT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]