Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 01:19   #1
SBKei
 
Аватар для SBKei
 
Регистрация: 27.06.2011
Сообщений: 4
По умолчанию Возможна ли сортировка?

Помогите решить задачку. Есть три таблицы:
users
id | name
1 |Ivan
2 | Petr
3 | Misha

avatars
id | avatar
1 |a_Ivan
2 | a_Petr
3 | a_Misha

hits
cid | hits
1 |10
1 | 9
3 | 8
2 | 7
3 | 6
1 | 5

Делаю запрос:
Код:
SELECT
users.name,
avatar.avatar,
hits.hits

FROM hits

INNER JOIN users ON
hits.cid = users.id 
 
INNER JOIN avatar ON 
hits.cid = avatar.id  

GROUP BY name
ORDER BY hits DESC
вывод:
name | avatar | hits
Ivan |a_Ivan | 10
Petr | a_Petr | 7
Misha|a_Misha | 6

Задача. Нужно чтобы у Misha было 8 так как у него 8 в хите выше чем 6, если убрать GROUP BY , то все будет выводить по порядку убывания с 10 до 5, но имена будут повторятся, что не допустимо. Или как сделать так чтобы выбиралось максимальное значение хита пользователя?

Последний раз редактировалось Stilet; 27.06.2011 в 14:01.
SBKei вне форума Ответить с цитированием
Старый 27.06.2011, 14:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

попробуй:
Код:
SELECT users.name,avatar.avatar,max(hits.hits)
 FROM hits
  INNER JOIN users   ON  hits.cid = users.id 
  INNER JOIN avatar ON  hits.cid = avatar.id  
GROUP BY name
ORDER BY 3 DESC
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2011, 14:28   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

GROUP чуть подправить надо
Код:
GROUP BY name,avatar.avatar
И по структуре (если возможно) - таблицу avatars выбросить и поле avatar переместить в таблицу users
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.06.2011 в 14:30.
Аватар вне форума Ответить с цитированием
Старый 27.06.2011, 23:11   #4
SBKei
 
Аватар для SBKei
 
Регистрация: 27.06.2011
Сообщений: 4
Радость

Цитата:
Сообщение от Stilet Посмотреть сообщение
попробуй:
Код:
SELECT users.name,avatar.avatar,max(hits.hits)
 FROM hits
  INNER JOIN users   ON  hits.cid = users.id 
  INNER JOIN avatar ON  hits.cid = avatar.id  
GROUP BY name
ORDER BY 3 DESC
Спасибо, Stilet! Помогло, УРА!!!

Последний раз редактировалось SBKei; 28.06.2011 в 09:32.
SBKei вне форума Ответить с цитированием
Старый 27.06.2011, 23:16   #5
SBKei
 
Аватар для SBKei
 
Регистрация: 27.06.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
GROUP чуть подправить надо
Код:
GROUP BY name,avatar.avatar
И по структуре (если возможно) - таблицу avatars выбросить и поле avatar переместить в таблицу users
Да, но эти таблицы для разных компонентов в joomla!
SBKei вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из Паскаля в Си. возможна оплата Ilyastudent Помощь студентам 1 23.05.2010 16:27
Возможна ли запись типа integer[5]? k1r1ch Общие вопросы Delphi 6 01.10.2009 14:30
Возможна ли сортировка вычисляемых полей в DBGrid, если используется ADOTable ArtInt БД в Delphi 16 13.04.2009 03:13
Возможна сортировка или нет? Constellation БД в Delphi 44 17.11.2007 11:32
Возможна ли рекурсия в запросах eremin БД в Delphi 0 23.05.2007 15:54