mysql - MySQL 基于另一个表的条件选择更新表
问题描述
TL;博士
我需要从 Table 中的每一行中选择两行和两列,Matches_teams
并更新 Table 中的一行和 4 列Matches
。
我的问题:
考虑这个例子:一个类似足球幻想的数据库。有足球队,比赛必须总是包括两支不同的球队,每支球队都有赔率。
我有以下表格:
表匹配:
Matches
--------
ID | date | team_winner_id | score
然后我创建了联合表Matches_teams
。以下,对于每场比赛,它必须始终有 2 支不同的球队,他们各自的赔率
Matches_teams
--------------
ID | team_id | match_id | odds
表的示例记录Matches_teams
:
ID | team_id | match_id | odds
-------------------------------
1 | 5 | 22 | 0.8
2 | 6 | 22 | 2.2
3 | 12 | 56 | 1
4 | 3 | 56 | 2.1
现在我意识到Matches_teams
并不是真的需要联合表。如果一场比赛只能并且永远有两支球队,我可以在表格中为每支球队及其赔率添加一列,Matches
如下所示
Matches
--------
ID | team_a_id | team_a_odds | team_b_id | team_b_odds | date | team_winner_id | score
以上面的Matches_teams
数据为例,我希望我的重组Matches
数据看起来像这样:
Matches
ID | team_a_id | team_a_odds | team_b_id | team_b_odds | date | team_winner_id | score
---------------------------------------------------------------------------------------
22 | 5 | 0.8 | 6 | 2.2 | .. | ....
56 | 12 | 1 | 3 | 2.1 | .. | ....
任何可以做到这一点的MySQL操作?通过给定的匹配 id 的操作,它将Matches
根据从中选择的数据并在等于Matches_teams
的条件下更新现有记录Matches.id
Matches_teams.match_id
解决方案
推荐阅读
- r - 在相应的日期字段中将 df 中的字段滞后一天
- javascript - 在 Stack Navigator 中使用 navigation.openDrawer
- java - 如何杀死有关时间的条件边界突变
- javascript - 无效的钩子语句,转换为使用类
- python - 将一列中的空格分隔字符串拆分为两列(int)-pandas python
- api - 如何将气候 API 转换为 WMS / WFS 层以进行高级分析
- flutter - Flutter:应用未打开时如何在应用外显示 FCM 推送通知
- qt - 调用 'pkg-config --libs-only-l Qt5Core Qt5Network Qt5Widgets 返回退出状态 1
- python - 使用 BeautifulSoup 解析公司列表的问题
- session - ColdFusion 2018 标准 2 节点集群,带有用于故障转移的 J2EE 共享会话