![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
sanich_ |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
Здравствуйте!
Есть таблица trening и trening_files отношение между ними 1 ко многим в таблице trening_files есть поле checked по которому нужно отсортировать Вот что пробовал:
id_trening checked 4 no 2 no 2 no 3 no 1 yes 4 yes 3 yes 2 yes 1 yes 5 yes В результате в поле id_trening есть дублирующие записи, дубликаты нужно убрать, сотрировка верно работает, из скрина видно, что если подавить дубликаты id_trening, то в поле id_trening числа должны стоять имеенно в такой последовательности и это то, что мне нужно id_trening 4 2 3 1 5 Убираю дубликаты с помощью group by
Получаю результат не в той последовательности, что есть неправильно id_trening checked 2 no 3 yes 4 yes 5 yes 1 yes |
||||
|
|||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 8 Всего: 31 |
Попробуйте так:
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Неправильный запрос, дающий правильный результат:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
sanich_ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
Сори, наверно не очень толково объяснил задачу. Все, что привели не совсем верно.
Скажем так, есть таблица "trening_files",в ней два поля с данными id_trening checked 1 no 1 yes 2 yes 2 no 2 no 3 yes 3 no 4 no 4 no 5 yes "id_trening" - это внешний ключ, на запись тренинга поэтому повторяется "checked" - это статус проверки файла ('yes','no') ('проверенный', 'непроверенный') У каждого тренинга множество файлов, у которых разные статусы "checked" Задача вывести тренинги (id_trening) в таком порядке, чтобы вверху были те тренинги, в которых в файлах статус "checked" равен 'no', т.е. непроверенные файлы, а после уже проверенные, причем чем больше у тренинга непроверенных файлов, тем выше должен быть тренинг т.е. исходя из табличных данных приведенных выше, последовательность тренингов должна получится следующая id_trening 4 2 3 1 5 или id_trening 2 4 3 1 5 потому как у id_trening=2 2 файла со статусом 'no' id_trening=4 2 файла со статусом 'no' |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Тогда идея sir_nuf_nuf абсолютно верная. Только вместо Max надо считать Sum и сортировать именно по сумме.
Добавлено через 57 секунд Вернее, по Sum(IF(f.checked == 'yes',0,1)) -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
sanich_ |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 2.3.2008 Репутация: нет Всего: нет |
да, точно спасибо, вот так еще короче
|
||||
|
|||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |