CSV的MySQL自动更新程序


MySQL Automatic Updater from CSV

我正在尝试为足球数据库创建一个自动比分更新程序。我的客户会给我发送CSV电子表格,其中包括比赛日期、主队、主队得分、客队和客队得分。问题是我有一个单独的团队表(team_id、team_name等)和游戏表,如下所示:

团队(team_id、team_name等)

游戏(game_id、game_home_team、game_ome_score、game_visitor_team、game_visitor_core、game_date、game_complete)

样本游戏数据(1123,0156,0,8-31-2012,否)->我在游戏表中存储团队的id而不是他们的名字。

我需要写一个脚本,自动更新分数。每周大约有327分。

CSV将如下所示(带有列标题):

游戏日期,主页_上午,主页_核心,访问者_上午,访问者_核心

(2012-8-31,Forest Hills,44,Westmont Hilltop,0)->样本数据

我如何首先获得团队id,然后将他们的主场id和访客id与他们的团队名称进行匹配,然后获得与匹配的团队id相对应的游戏id,然后更新该游戏的分数?这太多了,我有点迷失在这个问题上。如果能提供任何帮助,甚至是更好的方法,我们将不胜感激。以下是我到目前为止所拥有的:

UPDATE game SET 
    game_home_score = ?, 
    game_visitor_score = ?, 
    game_complete = 'Yes' 
WHERE game_id = 
    SELECT game_id 
    FROM game 
    WHERE game_home_team IN (
        SELECT team_id 
        FROM team 
        WHERE team_name = ?
    ) AND game_visitor_team IN (
        SELECT team_id 
        FROM team 
        WHERE team_name = ?
    );

我知道这个问题是错误的,但就我需要走的方向而言,这正是我所想的。我的MySQL知识还不够丰富(我认为),无法让它发挥作用。

让我们将CSV文件中的数据放入一个名为CSV_data的表中,然后类似这样的操作应该会起作用:

update game g, csv_data c, team home_team, team visit_team
set g.game_home_score = c.home_score,
    g.game_visitor_score = c.visitor_score,
    g.game_complete = 'Yes'
where g.game_date = c.game_date
and home_team.team_name = c.home_team
and home_team.team_id = game.home_team
and visit_team.team_name = c.visit_team
and visit_team.team_id = game.visit_team

希望能有所帮助。