首页 文章

在其他表mysql中有重复的字段

提问于
浏览
0

我有三张 table :

游戏:
game_id int(11)NO PRI auto_increment
archive_moves varchar(3000)NO
chat varchar(3000)NO

玩家:
player_id int(11)NO PRI auto_increment
username varchar(30)NO UNI
密码varchar(30)没有
email varchar(30)NO UNI
激活位(1)否b '0'
hash varchar(32)NO
game_number int(10)NO MUL 0

playersgames:
playergame_id int(11)NO PRI auto_increment
player_id int(11)没有MUL
game_id int(11)没有MUL
game_number int(10)NO MUL 0

playersgames.game_id是games.game_id的外键
playersgames.player_id是player.player_id的外键

我想要的是game_number从玩家到玩家游戏获得完全相同的 Value . 所以我在players.game_number和playersgames.game_number以及“cascade on update”之间创建了一个外键 . 问题是当我从players.game_number更改值时,playersgames的值从players.game_number获得最高值,并且players.player_id和他的player.game_number之间没有更多的连接 .

这背后的想法是仅在game_number <5时获得playersgames.player_id . 换句话说,玩家不能超过5场比赛 . 如果它更方便的话我会对其他解决方案持开放态度 .

谢谢 !

1 回答

  • 0

    您不需要 playergames 表或 players 表中的 game_number 列 . 相反,您可以运行以下查询:

    SELECT
        p.player_id,
        COUNT(g.playergame_id) AS numGames
    FROM
        players p
    LEFT JOIN
        playersgames g ON p.player_id = g.player_id
    GROUP BY
        p.player_id
    

    结果将为您提供玩家ID和玩家拥有的游戏数量 . 另见:MySQL joins and COUNT(*) from another table .

相关问题