Вообщем есть три таблицы:
1) categories
id_category | name_category
-------------------------------- --
2) topics
id_topic | id_category | name_topic
-------------------------------- --
3) posts
id_post | id_topic | text
-------------------------------- --
Нужно сделать запрос, который выводил все поля из таблицы categories, количество полей в таблице topics по ключу id_category и количество записей в таблице posts по ключу id_topic.
Думаю что смысл понятен, что нужно для каждой категории форума узнать сколько в ней топиков и постов.
Можно ли это реализовать одним запросом и не прибегая к подзапросам, да бы оптимизировать запрос.
1. Css-community - 28 Февраля, 2012 - 15:26:19 - перейти к сообщению
2. ugin_root - 28 Февраля, 2012 - 15:43:52 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT
- categories.*,
- count(topics.id_topic) AS count_topic,
- COUNT(posts.id_post ) AS count_post
- FROM
- categories
- LEFT OUTER JOIN topics ON topics.id_category = categories.id_category
- LEFT OUTER JOIN posts ON posts.id_topic = topics.id_topic
- GROUP BY categories.id_category