Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как обработать результаты Union?

9.0K
14 октября 2005 года
vov4ik
20 / / 09.08.2005
Есть пять таблиц (СУБД MySql):
1. таблица users(userid,name,country и т.д.);
2. таблица user_sport(userid,sportid);
3. таблица user_hobby(userid,hobbyid);
4. таблица sportpref(userid,sportid,weight);
5. таблица hobbypref(userid,hobbyid,weight);

Делаю следующий запрос для оперделенного userid (в примере userid=58 ) :

(SELECT user_sport.userid,SUM(sportpref.weight) FROM user_sport, sportpref WHERE user_sport.sportid=sportpref.sportid AND sportpref.userid=58 AND user_sport.userid<>58 GROUP BY user_sport.userid)
union ALL
(SELECT user_hobby.userid,SUM(hobbypref.weight) FROM user_hobby, hobbypref WHERE user_hobby.hobbyid=hobbypref.hobbyid AND hobbypref.userid=58 AND user_hobby.userid<>58 GROUP BY user_hobby.userid)

В результате запроса получаю список состоящий из двух кусков - просумированные по weight сопрадения из таблицы user_sport и просумированные по weight сопрадения из таблицы user_hobby. Список имеет два поля userid и SUM(weight).

Проблема: как можно в результирующим списке всего этого запроса сделать GROUP BY userid и SUM по weight?
Подскажите плиз, если кто разбирается...
Спасибки.
10
14 октября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by vov4ik
Проблема: как можно в результирующим списке всего этого запроса сделать GROUP BY userid и SUM по weight?


Похоже больше на сложение метров с килограммами, но тем не менее:

 
Код:
select
  sportpref.userid, sum(sportpref.weight), sum(hobbypref.weight)  
from
  sportpref, hobbypref
where
  sportpref.sportid = hobbypref.sportid and sportpref.sportid = :ID
group by
  user_sport.userid

Кстати, почему в оригинальном запросе дается сравнение на равно и не равно userid с 58, я так и не понял.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог