我该如何进行这个查询?关于一个简单的外键查询
这是我正在做的一个小项目
例如这些玩家:
玩家:
| PlayerId | name | team_TeamId |
| 1 | john | 1 |
| 2 | myke | 1 |
| 3 | carl | 2 |
这支球队:
团队:
| TeamId | name |
| 1 | Arsenal |
| 2 | Real Madrid |
SELECT player.name, team.name
FROM player, team
WHERE player.team_TeamId = 1
这个查询向我展示了这个:
| name | team.name |
| john | Arsenal |
| myke | Arsenal |
| john | Real Madrid |
| myke | Real Madrid |
它“适用于”此查询(显然不是正确的形式):
SELECT *
FROM player, team
WHERE player.team_TeamId = 1 AND team.TeamId = 1
| name | team.name |
| john | Arsenal |
| myke | Real Madrid |
我预计只有 teamId = 1 的玩家,但实际输出是 teamId = 1 的玩家,但对所有团队重复。
最佳答案
我可能不知道正确答案。从我的角度来看,您尝试选择的方式没有任何关系。但是您可以通过在两个表中添加两个虚拟列来解决此问题。
select pt.name,tt.name from (SELECT player.*, @i:=@i+1 AS rowNum
FROM player , (SELECT @i:=0) AS temp
WHERE player.team_TeamId = 1) as pt LEFT JOIN
(SELECT team.*, @j:=@j+1 AS rowNum from team , (SELECT @j:=0) AS temp ) as tt on
pt.rowNum = tt.rowNum
关于mysql - 如何修复 MySQL 中这个简单的外键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522906/