|
|
|
Как добавить в запрос поле с количеством строк из другого поля:?
|
|||
|---|---|---|---|
|
#18+
Есть таблица actions id name type_id date 1 action_1 1 2013 2 action_2 2 2013 3 action_3 1 2013 4 action_4 2 2014 5 action_5 4 2014 Есть таблица types id name 1 type_1 2 type_2 3 type_3 4 type_4 5 type_5 Есть таблица users id name 1 user_1 2 user_2 3 user_3 4 user_4 5 type_5 И есть таблица action_users которая закрепляет за акшнми юзеров id user_id action_id 1 1 1 2 2 1 3 3 2 4 4 3 5 5 3 Нужен запрос, который выберет строки таблицы type, всех actions where date = 2013, но чтобы в конце каждой строки было добавлено поле например all_users в котором бы прописывалось число всех юзеров, прикрепленных к actions данных types Такое реально вообще? Взять строки можно понятно как: SELECT * FROM types LEFT JOIN actions ON (types.id = actions.type_id) WHERE actions.date='2013' GROUP BY types.name Появится что типа: id name id name type_id date 1 type_1 1 action_1 1 2013 2 type_2 2 action_2 2 2013 А нужно: id name id name type_id date all_users 1 type_1 1 action_1 1 2013 2 2 type_2 2 action_2 2 2013 1 Чувствую копать нужно к внутреннему запросу поиска count(*) кто шарит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 15:24:46 |
|
||
|
Как добавить в запрос поле с количеством строк из другого поля:?
|
|||
|---|---|---|---|
|
#18+
попробуйте еще 1 left join примерно как-то так: SELECT count(*), t1.id, t1.type, .... FROM types t1 LEFT JOIN actions t2 ON (t1.id = t2.type_id) LEFT JOIN action_users t3 ON (t3.action_id = t1.type_id) WHERE actions.date='2013' group by t3.action_id запрос я не проверял, но идея в этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2014, 16:05:07 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=180&tid=1834914]: |
0ms |
get settings: |
13ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 380ms |

| 0 / 0 |
