SQL查询麻烦

时间:2015-11-17 14:37:37

标签: mysql sql database subquery

我正在创建一个幻想足球应用程序,我正在以下列格式在我的MYSQL数据库中读取文本文件(我的数据库全部填充):

FirstName LastName TeamName OpposingTeam Date (passing|rushing|fieldgoal) (FirstName LastName)?

尾随名称语法"(FirstName LastName)?"表示此信息可能在列中,也可能不在列中。只有在传球触地得分的情况下才会出现并代表投掷球的四分卫。

同样,语法"(传递| rushing | fieldgoal)"只是意味着会出现其中一个特定值。

这是我数据库的架构:

Player
    id: INT, primary key
    first: CHAR(25), first name of player
    last: CHAR(25), last name of player
    team: INT, foreign key to Team table

Team
    id: INT, primary key
    name: CHAR(25), single word name of team

Game
    id: INT, primary key
    tid1: INT, foreign key to Team table
    tid2: INT, foreign key to Team table
    date: YYYY-MM-DD

GameTeam
    id: INT, primary key
    GameID: INT, foreign key to Game table
    TeamID: INT, foreign key to Team table

Score
    id: INT, primary key
    game_id: INT, foreign key to Game table
    player_id: INT, foreign key to Player table
    passer_id: INT, foreign key to Player table
    score_type: enum['pass', 'rush', 'fg'], number of rushing touchdowns

在我的应用中,射门得分值3分,传球/冲球得分值7分。

我正在尝试提供SQL查询,以帮助我获取以下信息:

Peyton Manning在对阵迈阿密的比赛中得分或传球多少次达阵?

列出田纳西州赢得的所有比赛(日期和对方球队)。

雷吉布什在十月份的得分有多少次冲击?

我在编写查询时遇到很多麻烦,这些查询将帮助我获取此信息。有人可以帮助我吗?

澄清:一切都是CHAR(25),除了(传递| rushing | fieldgoal),这是一个枚举,而日期是YYYY-MM-DD。

编辑:这是包含我的部分数据的pastebin:http://pastebin.com/npKB5gQa

1 个答案:

答案 0 :(得分:0)

我建议你改变你的设计并用玩家数据(名字,姓氏等),团队等创建一个单独的表格。然后在您的PlayerRecord表格中按ID引用球员/球队。