gpt4 book ai didi

mysql - 如何修复 MySQL 中这个简单的外键错误

转载 作者:行者123 更新时间:2023-11-29 09:41:34 24 4
gpt4 key购买 nike

我该如何进行这个查询?关于一个简单的外键查询

这是我正在做的一个小项目

例如这些玩家:

玩家:

| 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com