Touchdown Finder

From 1920 to 2025, in the Regular Season, all offensive touchdowns, grouped by passer, sorted by descending distance
Display Query »
/* mysql8 */
SELECT /* player_td_finder */ year_id,
  game_num,
  game_date,
  CONCAT('/boxscores/' , ifnull(game_id, concat(DATE_FORMAT(game_date,'%Y%m%d'),'0',IF(is_home_game=1 OR (is_home_game IS NULL AND team_id<opp_id),team_id,opp_id))),'.htm') AS game_date_link,
  DAYNAME(game_date) AS day_name,
  team_id,
  IF(is_home_game IS NULL,'N',IF(is_home_game=1,'','@')) AS game_location,
  opp_id,
  CONCAT(IF(points > points_opp, 'W', IF(points < points_opp, 'L', 'T')), ' ', points, '-', points_opp) AS game_result, 
  points - points_opp AS game_result_csk,
  quarter,
  score_type,
  distance,
  td_scorer,
  td_passer,
  CONCAT_WS(" ",master_scorer.name_first, master_scorer.name_last) AS scorer,
  CONCAT('/players/',UPPER(LEFT(master_scorer.player_id,1)),'/',master_scorer.player_id,'.htm') AS scorer_link,
  IF(master_scorer.is_hall_of_famer = 1, '*', '') AS scorer_link_post,
  CONCAT_WS(",",master_scorer.name_last, master_scorer.name_first) AS scorer_csk,
  replace(scorer_games_ages.year_days, '.', '-') as scorer_age,
  CONCAT_WS(" ",master_qb.name_first, master_qb.name_last) AS qb,
  CONCAT('/players/',UPPER(LEFT(master_qb.player_id,1)),'/',master_qb.player_id,'.htm') AS qb_link,
  IF(master_qb.is_hall_of_famer = 1, '*', '') AS qb_link_post,
  CONCAT_WS(",",master_qb.name_last, master_qb.name_first) AS qb_csk,
  replace(passer_games_ages.year_days, '.', '-') as qb_age,
  CONCAT_WS(" ",master_kick.name_first, master_kick.name_last) AS kicker,
  CONCAT('/players/',UPPER(LEFT(master_kick.player_id,1)),'/',master_kick.player_id,'.htm') AS kicker_link,
  CONCAT_WS(",",master_kick.name_last, master_kick.name_first) AS kicker_csk,
  case xpa_type   
  when 'p' then concat(if(xp_passer != '',(select concat(name_first, ' ', name_last) from master where master.player_id = xp_passer),''), ' pass ',
  if(is_success_xpa,concat('complete to ', (select concat(name_first, ' ', name_last) from master where master.player_id = xp_scorer)), 'failed'))
  when 'r' then concat(if(xp_scorer != '',(select concat(name_first, ' ', name_last) from master where master.player_id = xp_scorer),''), ' rush ', if(is_success_xpa,'succeeded','failed'))   
  when 'k' then concat(if(xp_kicker != '',(select concat(name_first, ' ', name_last) from master where master.player_id = xp_kicker),''), ' kick ', if(is_success_xpa,'succeeded','failed'))   else '' end as conv_string,
  CONCAT_WS(' ', CASE WHEN score_before > score_before_opp THEN 'Lead'
  WHEN score_before < score_before_opp THEN 'Trail'
  ELSE 'Tied'
  END,
  CONCAT_WS('-', score_before, score_before_opp)) AS score_before,
  score_before - score_before_opp AS score_before_csk,
  CONCAT(CASE WHEN score_after > score_after_opp THEN 'Lead'
  WHEN score_after < score_after_opp THEN 'Trail'
  ELSE 'Tied'
  END,
  ' ',
  CONCAT_WS('-', score_after, score_after_opp),
  IF(is_goahead = 1, '*', '')) AS score_after,
  score_after - score_after_opp AS score_after_csk,
  score_before - score_before_opp AS diff,
  is_tying,
  is_goahead,
   week_num
FROM scoring
  LEFT JOIN master AS master_kick
  ON scoring.kicker = master_kick.player_id
  LEFT JOIN master AS master_scorer
  ON scoring.td_scorer = master_scorer.player_id
  LEFT JOIN master AS master_qb
  ON ifnull(scoring.td_passer,scoring.int_passer) = master_qb.player_id
  left join (select years, year_days, game_id, player_id as td_scorer from games_ages) as scorer_games_ages using (td_scorer, game_id)
  left join (select years, year_days, game_id, player_id as td_passer from games_ages) as passer_games_ages using (td_passer, game_id)
WHERE td_scorer != '' AND year_id >= 1920 AND year_id <= 2025 AND is_playoff_game = 0 AND (score_type in ('pass','rush')) AND (ifnull(distance,0) BETWEEN 0 AND 110)
ORDER BY distance DESC
LIMIT 0, 20


$VAR1 = [];

Search Criteria

Sort By
Sorting options are only available for subscribers. Sign up now for a free trial.
Find Touchdowns for Player (optional)
Javascript is required for the selection of a player.
Seasons
League
Game Type
Playoff Round

Touchdown Filters (distance, score type, qtr., etc...)

Touchdown Type
Group Passing TDs By
Conversion Type
Distance
Quarter
Point Differential

team Points minus opp. points

Between  
&  

Biographical Filters (team, age, HoF status, etc...)

Team
Scorer Age (as of date of game)
to
Scorer Active
Scorer In Hall of Fame
Passer Age (as of date of game)
to
Passer Active
Passer In Hall of Fame

Game Filters (home/away, game #, week #, etc...)

Opponent
Game Result
Game Location
Game Number for team
Week Number of season

You have edited your search criteria

or keep editing your search

clear changes

Fetching Results

Stathead spinner

Results

Subscribe to Stathead Football for full results.

Go inside the Football Reference database and access the sports search engine that was made for fans like you. Subscriptions start at just $9/month. Learn More.

Get your first month FREE

Already a paid subscriber? Log in for full results.

Data coverage: all-time (since 1920). Please see our data coverage page for details.

If you utilize material unique to a Sports Reference site for a tweet, an article, or for research for a broadcast or podcast, please strongly consider citing this site as the source for the material. It would be greatly appreciated and would help us continue to produce this material.