团队表
+------+------------+
|team_id | week |
+------+------------+
| 1 | 2012-09-10 |
| 2 | 2012-09-10 |
| 3 | 2012-09-17 |
| 4 | 2012-09-17 |
+------+------------+
团队成员加入表
+---------+-----------+
| team_id | player_id |
+---------+-----------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 1 |
+---------+-----------+
根据上面的模式,我需要将一个查询放在一起,该查询将显示在本周和上周之间添加了哪个玩家以及哪个玩家被删除。
例如
在2012-09-10周和2012-1=09-17周之间,球员8成功移动(他上周出现在一支球队,本周出现在两支球队)。
球员9上周出现在一支球队2012-09-10,但没有进入本周2012-09-17。
我目前正在应用程序代码中执行此操作(因为我不是sql专家),但是有一种唠叨的感觉,可能有一种方法可以直接在数据库中执行此操作(MySQL)。
任何帮助将不胜感激。
这是一个开始,可能需要一些调整。 希望对您有所帮助。
SELECT * FROM teams t
INTO #TMP
INNER JOIN teamsplayers tp ON tp.team_id = t.team_id
;
SELECT count(*), week, player_id
FROM #TMP
GROUP BY week, player_id
ORDER BY week, player_id
;
Edit:
放置表 #TMP;