Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
JOIN и GROUP BY (alexis) 07/12/2001 - 11:35:44
      Re: JOIN и GROUP BY (Василий) 07/12/2001 - 12:33:24
      Re: JOIN и GROUP BY (alexis) 08/12/2001 - 15:12:13

> Original message text:
> From: alexis - 07/12/2001 - 11:35:44
> Subject:JOIN и GROUP BY
> -----------------
> Дано. Есть следующие таблицы с полями. (примерно)
>
> PLAYER_IN_GAME (участие игрока в игре)
> idgame
> idplayer
>
> GOAL (голы)
> idgame
> idplayer
>
> PENALTY (удаления)
> idgame
> idplayer
> min (минуты удаления)
>
> Задача - хочется одним запросом выбрать по конкретному idplayer количество его игр сумму минут удаления в конкретном idgame. Главное - хочется одним запросом все. :)
>
> Смысл в том, что в GOAL одна запись - один гол. В PENALTY тоже самое. Т.о. теоретически как бы в этих таблицах по конкретной idgame и idplayer записи могут и не существовать, а может быть их и больше чем одна (игрок удалялся больше раза или забивал больше одного гола).
>
> В общем была идея использовать JOIN и GROUP BY. Но проблема. Если писать запрос примерно так:
>
> select count(goal.idgame), sum(penalty.min)
> from player_in_game pig
> left join goal on
> goal.idgame=pig.idgame and
> goal.idplayer=pig.idplayer
> left join penalty on
> penalty.idgame=pig.idgame and
> penalty.idplayer=pig.idplayer
> where
> pig.idgame= (...) and
> pig.idplayer= (...)
> group by idgame, idplayer
>
> то не выйдет, т.к. если например в goal по этой игре у игрока 1 гол (1 запись), а в penalty скажем 2 (2 записи), то при подсчете sum(min) получается корректная, а вот count() равно 2. Почему так происходит я понимаю, объяснять не надо. Нужно идея, может кто-то подскажет как побороть это дело?
>
> Главное повтряю - интересно мнение существует ли решение в один запрос. Темпорари табле тоже не предлагать. :)
>


From: alexis - 08/12/2001 - 15:12:13
Subject:JOIN и GROUP BY
-----------------
Василий, спасибо за ответ.

Вопрос честно говоря просто чисто теоретический. Конечно сделаем все двумя подзапросами. Просто хочется очень одним :). Просто интересно - может быть можно все-таки.

Кстати ситуацию спасет еще если чтонить типа оракловых UNION появится. Вроде как что-то типа JOIN UNION должно уже появиться.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
1066



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |