我遇到了復雜的 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表中,必須檢查該人之前是否沒有注冊過他想要注冊的活動,并檢查同一個人是否已經(jīng)注冊過另一個活動,但這兩個活動不屬于同一日期。不幸的是我無法解決這個問題。我希望你能幫助我。
1 回答

翻過高山走不出你
TA貢獻1875條經(jīng)驗 獲得超3個贊
它實際上非常簡單 - 您所需要的只是對兩個相關列的組合的唯一約束:
ALTER TABLE activityParticipant
ADD UNIQUE (activityId, personId);
現(xiàn)在,當您嘗試插入與另一行重復的行時(例如人員 235625 想要第二次注冊活動 1),查詢將失敗并出現(xiàn)錯誤。
要解決“同一個人在同一日期不能進行兩項活動”問題,您可以對personId和date執(zhí)行相同的操作:
ALTER TABLE activityParticipant
ADD UNIQUE (date, personId);
現(xiàn)在,235625 號人員無法在同一天注冊兩項不同的活動。
- 1 回答
- 0 關注
- 134 瀏覽
添加回答
舉報
0/150
提交
取消