如果我提供场景的(简化)示例,我的问题可能会更好理解。我有两个表,即活动和课程。 Event表包含EventID,CourseID和EventDate。课程表包含CourseID和CourseName。
我想添加一个新活动。我理解查询通常如下:
INSERT INTO event
(EventID,CourseID,EventDate) VALUES ( NULL,'2','2011-03-01');
但我希望通过提供CourseName而不是CourseID来更新Event。我该怎么做呢?
编辑:显然,只有一个MYSQL查询无法做到这一点。我试图在PHP中执行此操作并尝试允许用户更新事件记录。显然,用户可以方便地根据课程名称添加新事件,最好使用下拉框。
由于
答案 0 :(得分:0)
INSERT INTO Event ( EventID, CourseID, EventDate )
SELECT NULL, C.CourseID, '2011-03-01'
FROM Course C
WHERE C.CourseName = 'Course Name Goes Here';
答案 1 :(得分:0)
你可以尝试这一件事。虽然您可能希望在查询中包含日期或其他一些方式,以确保您唯一地标识您要查找的记录。
您可以考虑的另一件事是存储事件ID,当您调出对您希望用户更新的事件的引用时。然后,您将确保只更新您想要的记录。
update Event set ....
where courseID=(
select courseID from Course
where CourseName like ''
)