Страница: 1 |
Вопрос: count() из 2 связанных таблиц | Добавлено: 24.05.10 19:12 |
Автор вопроса: ![]() |
Есть две связанные таблицы. Как взять данные из первой таблицы и количество "детей" к каждой ее строке из второй таблицы?
Пробовал так: SELECT table1.title, count(table2.id) AS child_count FROM table1 INNER JOIN table2 ON table1.id = table2.parent_id GROUP BY table2.id, table1.title Но это не подходит, так как если в table2 нет сторк, связанных с table1, то в результате я не получаю child_count со значением 0. |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 24.05.10 23:14 |
left join? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 10 Ответов: 17 |
Профиль | Цитата | #2 | Добавлено: 25.05.10 09:44 |
Спасибо, попробывал. Но тогда некорректно работает count(). Выводит таблицу, в которой повторяется поле table1.title, a поле child_count у каждой строки либо 0 либо 1.
Чтобы было понятней, запрос SELECT table1.title, count(table2.id) AS child_count FROM table1 LEFT JOIN table2 ON table2.parentId = table1.id GROUP BY table2.id, table1.title; выводит: вася, 1; вася, 1; вася, 1; петя, 1; петя, 1; маша, 0. А должен выводить: вася, 3; петя, 2; маша, 0. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 25.05.10 14:30 |
У меня работает
|
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 10 Ответов: 17 |
Профиль | Цитата | #4 | Добавлено: 27.05.10 11:44 |
спасибо! теперь у меня тоже работает )
Надо было убрать table1.title из запроса. |
Страница: 1 |
|