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

时间:2017-10-09 17:08:17

标签: mysql

我有三张桌子:

游戏:
game_id int(11)NO PRI auto_increment
archive_moves varchar(3000)没有 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)没有 game_number int(10)NO MUL 0

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

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

我想要的是game_number从玩家到玩家游戏获得完全相同的价值。所以我在players.game_number和playersgames.game_number之间创建了一个外键,并且"在更新时级联#34;它。 问题是当我从players.game_number更改值时,playersgames的值从players.game_number获得最高值,并且players.player_id和他的player.game_number之间没有更多的连接。

这背后的想法是只有当game_number

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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