【发布时间】:2014-09-08 22:39:00
【问题描述】:
在这里我需要一点帮助。
我正在 MySQL 中构建一个数据库,我将在其中进行许多不同的活动。每个活动都是列表的一部分。
所以,我的数据库中有以下表格。
列表
- 身份证
- 姓名
活动
- 身份证
- 姓名
- idList(FK 到列表)
我还想知道每个活动何时完成(您可以多次完成相同的活动)。为此,我还有一张桌子:
历史
- 日期
- idActivity(FK 到活动)
当用户完成一项活动时,我将此活动的 ID 和活动完成的当前时间添加到历史记录表中。
我想获取包含完成日期的整个列表。当活动尚未完成时,我希望它显示日期为空。
但是,只获取一次列表很容易。一个简单的左外连接就可以解决问题。我的问题是,每次历史记录表上出现日期时,我都想获取整个列表。
这就是我要找的:
列表:
id | name
1 | list1
活动:
id | name | idList
1 | Activity1 | 1
2 | Activity2 | 1
3 | Activity3 | 1
4 | Activity4 | 1
5 | Activity5 | 1
6 | Activity6 | 1
历史:
date | idActivity
17/07/14 | 1
17/07/14 | 3
17/07/14 | 4
17/07/14 | 6
16/07/14 | 2
16/07/14 | 3
16/07/14 | 5
预期结果:
idActivity | idList | activityName | date
1 | 1 | Activity1 | 17/07/14
2 | 1 | Activity2 | NULL
3 | 1 | Activity3 | 17/07/14
4 | 1 | Activity4 | 17/07/14
5 | 1 | Activity5 | NULL
6 | 1 | Activity6 | 17/07/14
1 | 1 | Activity1 | NULL
2 | 1 | Activity2 | 16/07/14
3 | 1 | Activity3 | 16/07/14
4 | 1 | Activity4 | NULL
5 | 1 | Activity5 | 16/07/14
6 | 1 | Activity6 | NULL
【问题讨论】:
标签: mysql sql database logging history