Php 使用外键从第二个表中获取值
我正在创建一个fantasy football android应用程序,通过php文件和SQL获取JSON数据。我的问题涉及两个表: 玩家详细信息Php 使用外键从第二个表中获取值,php,mysql,Php,Mysql,我正在创建一个fantasy football android应用程序,通过php文件和SQL获取JSON数据。我的问题涉及两个表: 玩家详细信息 玩家id(主键) 名字 姓 用户团队 (除PK外的所有id字段都是链接到玩家id的外键) 用户\团队\ id(主键) 守门员 右后卫 左后卫 等等 我希望能够运行一个PHP脚本,其中包含一个简单的select语句,它将显示用户团队的详细信息。我还想包括球员的名字和姓氏,它们链接到user_team position id字段中的外键。但是,我
- 玩家id(主键)
- 名字
- 姓
- 用户\团队\ id(主键)
- 守门员
- 右后卫
- 左后卫
- 等等
SELECT *
FROM user_team
WHERE user_id = '".$uid."'
在这种情况下,您必须根据您所在团队的职位数量,进行尽可能多的
加入
像
为了提高数据的一致性,可以通过引入positions
表来进一步规范化数据,而不是通过id在team_positions
中引用数据
同时,user_team表将只保留团队的详细信息,比如名称和任何其他您想放在那里的东西(可能是徽章?),以及团队id
这样,您将拥有非常灵活的结构。在关系数据库模型中,这是非常常见的方法
SELECT u.user_team_name, p1.goalkeeper_name, p2.rightback_name, p3.leftback_name, ...
FROM user_team u
LEFT JOIN player_details p1 ON u.goalkeeper_id = p1.player_id
LEFT JOIN player_details p2 ON u.rightback_id = p2.player_id
LEFT JOIN player_details p3 ON u.leftback_id = p3.player_id
...
WHERE u.user_team_id = <some id>
CREATE TABLE team_positions (
player_id INT,
team_id INT,
position TEXT,
FOREIGN KEY player_id
REFERENCES player_details(player_id)
FOREIGN KEY team_id
REFERENCES user_team(user_team_id)
);