I'm about SQLed out for the night but here's the final draft of the awards string... it includes MVP, Cy, ROY, All-Star, Gold Glove, Silver Slugger, and Reliever of the Year (which I call the Rolaids Relief award and which is nicknamed "RR" here):
Code:
SET @player_id = 7616;
SELECT
awdYears.year,
(select
CONCAT_WS(",", awards.mvp, awards.cy_young, awards.roy, awards.allstar, awards.goldglove, awards.silverslugger, awards.rolaids)
from
(SELECT awdYears.year as awardYear,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards ma
where
ma.league_id = 100
and ma.player_id = @player_id
and ma.award_id = 5
and ma.finish = 1
),
'MVP', null) as mvp,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards ma
where
ma.league_id = 100
and ma.player_id = @player_id
and ma.award_id = 4
and ma.finish = 1
),
'CY', null) as cy_young,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards ma
where
ma.league_id = 100
and ma.player_id = @player_id
and ma.award_id = 6
and ma.finish = 1
),
'ROY', null) as roy,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards aa
where
aa.league_id = 100
and aa.player_id = @player_id
and aa.award_id = 9
),
'AS', null) as allstar,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards aa
where
aa.league_id = 100
and aa.player_id = @player_id
and aa.award_id = 7
),
'GG', null) as goldglove,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards aa
where
aa.league_id = 100
and aa.player_id = @player_id
and aa.award_id = 11
),
'SS', null) as silverslugger,
if(awdYears.year in (
select year
FROM `modern-ish-baseball`.players_awards ma
where
ma.league_id = 100
and ma.player_id = @player_id
and ma.award_id = 13
and ma.finish = 1
),
'RR', null) as rolaids
FROM (SELECT DISTINCT a.year FROM league_history a) as awdYears
) as awards where awards.awardyear = awdYears.year
) as awardString
FROM (SELECT DISTINCT a.year FROM league_history a) as awdYears;