|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Здравствуйте, есть 3 таблицы: users, postanovlenie_obr_ds, postanovlenie_ts, Необходимо подсчитать количество строк для каждого пользователя из 2 последних таблиц. При использовании такого кода: SELECT users.fio, (group_concat(T.cnt)) AS k FROM (SELECT postanovlenie_obr_ds.ip_exec_prist as prist, COUNT(id) AS cnt FROM postanovlenie_obr_ds LEFT JOIN users ON users.users_id = postanovlenie_obr_ds.ip_exec_prist GROUP BY users.fio UNION ALL SELECT postanovlenie_ts.ip_exec_prist as prist, COUNT(id) AS cnt FROM postanovlenie_ts LEFT JOIN users ON users.users_id = postanovlenie_ts.ip_exec_prist GROUP BY users.fio) AS T LEFT JOIN users ON users.users_id = T.prist GROUP BY users.fio выводит столбец всех пользователей у кого есть строки и столбец k, в котором через запятую указаны количества строк с одной и с другой таблицы, проблема в том,что значения в столбце k идут не по порядку, например: Должно быть 10,15 25,3 13,2 ....... А выводит: 10,15 3,25 2,13 ....... И на протяжении всех строк так, то нормально, то меняет местами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 10:55 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Добавьте ORDER BY в аргументы GROUP_CONVAT()... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 19:14 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Akina, стало немного лучше, особенно в первом наборе данных, но при обновлении значений.... в общем все видно в примере. Про вставку нулей в пустые значения я пока молчу, либо про правильное распределение таких значений. Прописал так Код: sql 1.
1 набор 127,12 89,6 97,7 88,5 648,37 21,12 Тут поменялись местами 4,1 32,1 103,48 21,9 И тут поменялись 34,26 15,1 36,1 77,29 2 набор 125,12 82,9 97,7 85,5 642,38 23,12 поменялось 8,1 поменялось 2 4 22,4 поменялось 35,30 10,1 37,2 77,30 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 03:32 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
kostya580821,12 Тут поменялись местами ... 21,9 И тут поменялись ... 23,12 поменялось 8,1 поменялось ... 22,4 поменялось Да чем Вы смотрите-то? ничего ж не "поменялось". У Вас задана сортировка по уменьшению (DESC). Вот всё и сортируется по уменьшению - ткните пальцем в ту строку, где сначала меньшее число, потом большее... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 07:44 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Akina, точно.....а мне нужно чтоб выводил, грубо говоря, «значение с первой таблицы», «значение со второй таблицы» и больше либо меньше может быть любое значение, важен именно порядок, перед запятой одна таблица, после запятой, вторая таблица. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 09:19 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 09:34 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Akina, спасибо тебе, мил-человек, как все просто оказалось, все заработало, если не сложно, может подскажешь как сделать так, чтоб ставился 0, если в какой-то из таблиц нет данных по этому пользователю, а в другой есть, например 0,5.....буду очень благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 09:57 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Заменить T.cnt на COALESCE(T.cnt, 0). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 11:23 |
|
Подсчёт количества строк в связанных таблицах
|
|||
---|---|---|---|
#18+
Akina, что-то не выходит...и ошибки нет и все одинарные значения также заходят в первую таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 11:47 |
|
|
start [/forum/topic.php?fid=47&msg=39747218&tid=1829419]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 555ms |
0 / 0 |