我有三张桌子:
游戏:
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 谢谢!
答案 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。