![]() |
|
Модераторы: skyboy |
![]()
|
|
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Здравствуйте!
Есть:
Мы имеем некоторые входные данные по парам user_id и user_group. И для этих данных нужно: 1) убедиться, что в таблице posts для указанного списка пар user_id и user_group есть lists.user_count записей (или больше); 2) если для какой-либо пары user_id и user_group предыдущее условие неверно, необходимо получить информацию об этом. Например, входные данные по парам user_id и user_group: 1 10 1 20 2 100 Для первой lists.user_count = 1, и в posts есть 1 запись, значит все ок. Для второй пары lists.user_count = 2 в posts есть 3 записи - все ок. А вот для третей пары lists.user_count = 2, но в таблице posts есть только 1 запись. Вот об этом информацию нам и надо получить. Это можно сделать MySQL решением? Одним запросом надо обрабатывать все пары user_id и user_group. Может уже вечер, но как бился, ничего не получается. Смотрю в сторону LEFT JOIN со сравнением COUNT, но пока без результатов. нужна свежая мысль. Это сообщение отредактировал(а) maxipub - 12.1.2016, 19:14 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Конечно.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Хм, группируем posts чтоб получить необходимые count-ы, джойним и делаем выборку по условию. Вроде бы все и очевидно, но вчера додуматься не удалось.
И такое еще уточнение, выборку нужно делать не для всех данных, а для определенных пар user_id и user_group. Я же правильно понимаю, что с точки зрения производительности, добавлять условие вида ((user_id=1 AND user_group=10) OR (user_id=1 AND user_group=20) ... ) в WHERE стоит и в выборке во временную таблицу pp, и в основном запросе одновременно? Обе таблицы, и lists, и posts не маленькие (но и не огромные). |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Угу (во внутреннем оно лишнее по логике, но полезно с точки зрения производительности - возможно, обойдётся без материализации). А ещё разумнее слить их в temporary table с подходящим для такого отбора индексом. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Спасибо, будем работать!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |