MYSQL:根据外键添加记录

时间:2011-04-29 17:35:02

标签: mysql

如果我提供场景的(简化)示例,我的问题可能会更好理解。我有两个表,即活动和课程。 Event表包含EventID,CourseID和EventDate。课程表包含CourseID和CourseName。

我想添加一个新活动。我理解查询通常如下:

INSERT INTO event
(EventID,CourseID,EventDate) VALUES ( NULL,'2','2011-03-01');

但我希望通过提供CourseName而不是CourseID来更新Event。我该怎么做呢?

编辑:显然,只有一个MYSQL查询无法做到这一点。我试图在PHP中执行此操作并尝试允许用户更新事件记录。显然,用户可以方便地根据课程名称添加新事件,最好使用下拉框。

由于

2 个答案:

答案 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 ''
  )