我遇到了复杂的 PHP MySQL 查询问题。我希望你能帮助我。我尽力尽可能清楚地解释一切。这里有2个表(活动表和活动参与者表)这是一对多的关系注册信息存储在活动参与者表中。为了清楚起见,我还在解释中包含了活动表。表格活动activityId name 1 Activity-012 Activity-023 Activity-034 Activity-04 表格活动参与者activityParticipantId activityId personId date 55 1 28115 2020-05-2866 2 34496 2020-05-2867 3 34635 2020-05-2888 4 12992 2020-05-28此处要编写的查询必须满足这些条件。一个人想要注册一个活动(例如:activityId -> 1)。然后你得到这个人的personID(例如:235625)在activityParticipant表中,必须检查该人之前是否没有注册过他想要注册的活动,并检查同一个人是否已经注册过另一个活动,但这两个活动不属于同一日期。不幸的是我无法解决这个问题。我希望你能帮助我。
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
它实际上非常简单 - 您所需要的只是对两个相关列的组合的唯一约束:
ALTER TABLE activityParticipant
ADD UNIQUE (activityId, personId);
现在,当您尝试插入与另一行重复的行时(例如人员 235625 想要第二次注册活动 1),查询将失败并出现错误。
要解决“同一个人在同一日期不能进行两项活动”问题,您可以对personId和date执行相同的操作:
ALTER TABLE activityParticipant
ADD UNIQUE (date, personId);
现在,235625 号人员无法在同一天注册两项不同的活动。
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消