To retrieve all data in one query, the following should work.
From the originally posted table structure:
[b]ncaa_gm ncaa_gm_info ncaa_tm[/b]
[u]gameID[/u] [u]infoID[/u] [u]teamID[/u]
game_date gameID (fk) team_name
game_fixed teamID (fk) team_rating
team_score team_ww
I would first remove infoID from ncaa_gm_info as it seems to me that it does not provide any additional information and there allready is a candidate key: (gameID, teamID), thus giving the table:
[b]ncaa_gm_info[/b]
[u]gameID[/u]
[u]teamID[/u]
team_score
Then to retrieve all data in one query:
SELECT gameID, ncaa_gm_info.teamID, team_score, team_rating, team_ww
FROM ncaa_gm_info
INNER JOIN ncaa_tm ON ncaa_gm_info.teamID = ncaa_tm.teamID
WHERE gameID IN (SELECT gameID FROM ncaa_gm WHERE game_date = $someDate)
ORDER BY gameID ASC, teamID ASC
or
SELECT ncaa_gm.gameID, ncaa_gm_info.teamID, team_score, team_rating, team_ww
FROM ncaa_gm
INNER JOIN ncaa_gm_info ON ncaa_gm.gameID = ncaa_gm_info.gameID
INNER JOIN ncaa_tm ON ncaa_gm_info.teamID = ncaa_tm.teamID
WHERE game_date = $someDate
ORDER BY gameID ASC, teamID ASC
They will give you the same end result, but I have no idea if one will outperform the other for you.
Also, in the future I believe you should stick to using WHERE to limit your queries and JOIN clauses for performing joins. In other words, don't use
WHERE some_table.some_field = some_other_table.some_field
when you're after an INNER JOIN.