Объединение 2 внутренних запросов на объединение в один - PullRequest
1 голос
/ 01 мая 2011

Я застрял, пытаясь объединить выходные данные из 3 таблиц в один запрос.

Вот структура таблицы

BL_PLAYERS

player_id int (10)
league_id int (10)
player_name varchar (150)
пол tinyint (3)
initial_hc smallint (6)
total_score int (10)
total_games smallint (6)
current_hc smallint(6)
league_player tinyint (3)

BL_POINTS

series_id int (10) player_id int (10) точка smallint (6)

BL_LEAGUES_RANK

series_id int (10) player_id int (10) rank smallint (6)
last_game smallint (6) true_score smallint (6) гандикап smallint (6)
total_score smallint (6)

Здесьэто мои 2 внутренних оператора соединения ... они выглядят почти одинаково ... но я не могу найти способ скомбинировать его так, чтобы первый sql возвратил дополнительный столбец, представляющий собой сумму (rn.total_score) из BL_LEAGUES_RANK

SELECT pl.player_id, pl.player_name, pl.gender, pl.league_player, SUM( pt.point ) AS total_points FROM `bl_players` pl  INNER JOIN `bl_points` pt ON pl.player_id = pt.player_id AND series_id =1 GROUP BY player_id ORDER BY total_points DESC 

SELECT pl.player_id, pl.player_name, pl.gender, pl.league_player, SUM(rn.total_score) as total_pinfall FROM `bl_players` pl INNER JOIN `bl_leagues_rank` rn ON pl.player_id = rn.player_id AND series_id =1 GROUP BY player_id ORDER BY total_pinfall DESC

Возможно ли это вообще?Заранее благодарю за любой вклад в это ...

1 Ответ

0 голосов
/ 01 мая 2011

Я думаю, это должно сработать ....

SELECT pl.player_id, pl.player_name, pl.gender, 
    pl.league_player, SUM( pt.point ) AS total_points 
FROM bl_players pl, bl_points pt, bl_leagues_rank rn
WHERE pl.player_id = pt.player_id AND series_id =1 
    AND pl.player_id = rn.player_id
GROUP BY player_id ORDER BY total_points DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...