从另一个表中的列更新列

时间:2019-01-21 15:10:06

标签: mysql sql sql-update moodle

我正在尝试更新徽章的发行日期,以使其与Moody中的面对面课程日期匹配。 我们有一个好人,在12月为我们提供了价值十年的出勤登记册,现在,价值多年的徽章和证书都在同一日期。

每当我运行脚本时,无论我放置什么脚本,它都会使所有徽章日期变为fs.id = ** 我已经尝试过fs.id = 39 AND fs.id <> 6来查看它是否不会更新id 6,然后我可以一次执行一次,总共有8个日期。 如果我不使用fs.id = *,则使用第一个课程的日期。

UPDATE mdl_badge_issued bi 
JOIN mdl_user u ON bi.userid = u.id AND u.deleted = 0 
JOIN mdl_facetoface_signups ffs ON u.id = bi.userid 
JOIN mdl_badge b ON bi.badgeid = b.id
JOIN mdl_course c ON c.id = b.courseid 
JOIN mdl_facetoface f ON f.course = c.id 
JOIN mdl_facetoface_sessions fs ON fs.facetoface = f.id 
JOIN mdl_facetoface_sessions_dates fsd ON fsd.sessionid = fs.id 
SET bi.dateissued = fsd.timestart 
WHERE bi.badgeid = 72
AND fs.id = 39
  • mdl_facetoface_sessions_dates.timestart具有正确的日期
  • mdl_badge_isseud.dateissued列中的出勤标记为日期

一旦成功,我将需要做证书。

0 个答案:

没有答案