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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 23:06   #1
NNvan
Новичок
Джуниор
 
Регистрация: 07.06.2010
Сообщений: 1
Сообщение Как правильно объединить три простых запроса+ в один?

SELECT SUM games.points AS s1 FROM games WHERE players.player_id=games.player_1

SELECT SUM games.points AS s2 FROM games WHERE players.player_id= games.player_2

total_points = s1+s2

SELECT players.player_id , players.player , total_points FROM players

Есть таблица games{game_id, player_1, player_2} и таблица players{ player_id, player_name }. Надо получить выборку ranks{player_name, total_points}, в которой player_name это имя из первой таблицы, а total_points это сумма всех очков из таблицы games. Всё что я смог это слепить решение из трёх запросов + впомогательный код на языке программирования, но я уверен что это всё должен выполнять один запос. Подскажите как его слепить?
NNvan вне форума Ответить с цитированием
Старый 08.06.2010, 00:04   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не знаю, что у Вас за СУБД (позволяет ли она вложенные запросы),
но, примерно, это будет как-то так:
Код:
SELECT players.player_id , players.player_name,  points.total_points  FROM players, 
  (select sum(g1.sum_points) as total_points, g1.p_id from
        (select sum(points) as sum_points, player_1 as p_id from games group by  player_1
          union all
          select sum(points) as sum_points, player_2 as p_id from games group by  player_2) g1
    group by g1.p_id ) points
where  points.p_id =  players.player_id
p.s. Если какой-то игрок отстутствует в таблице games, то он в выборку НЕ ПОПАДЁТ!

Последний раз редактировалось Serge_Bliznykov; 08.06.2010 в 00:07.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить файлы в один с выборкой данных serd Microsoft Office Excel 8 21.11.2009 11:35
как можно объединить два массива в один новый? sqwerty Общие вопросы C/C++ 3 11.06.2009 23:50
Как объединить два массива в один. TheWanderer Общие вопросы C/C++ 2 10.11.2008 00:15
два запроса, которые нужно объединить в один. andrianov123 БД в Delphi 4 16.05.2008 16:06
Объединить в один файл asale Microsoft Office Excel 2 12.02.2008 13:18