2011-04-29 62 views
0

如果我提供該場景的(簡化)示例,則可以更好地理解我的問題。我有兩張桌子,活動和課程。事件表包含EventID,CourseID和EventDate。課程表包含CourseID和CourseName。MYSQL:根據外鍵添加記錄

我想添加一個新的事件。我明白,查詢通常會如下所示:

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

但相反,我想通過提供課程名稱而不是CourseID更新事件。我會如何去做這件事?

編輯:顯然沒有辦法只用MYSQL查詢來做到這一點。我試圖在PHP中執行此操作,並嘗試允許用戶更新事件記錄。顯然,用戶可以方便地根據課程的名稱添加新事件,最好使用下拉框。

感謝

+0

通常它是在sql之外完成的,在顯示名稱但返回ids的表單中有select選項,爲什麼在sql中需要它? – piotrm 2011-04-29 17:40:39

+0

我實際上正在試圖用PHP來做,我只是想在mysql中會有一個查詢。我會更新我的帖子以反映這一點 – Antonym 2011-04-29 17:47:15

回答

0
INSERT INTO Event (EventID, CourseID, EventDate) 
SELECT NULL, C.CourseID, '2011-03-01' 
FROM Course C 
WHERE C.CourseName = 'Course Name Goes Here'; 
0

這其中一件事,你可以嘗試。儘管您可能希望在查詢中包含日期或其他方式,以確保您唯一識別您正在查找的記錄。

您可以考慮的另一件事是存儲事件ID,當您調出您希望用戶更新的事件的引用時。然後你會確保你只更新你打算的記錄。

update Event set .... 
    where courseID=(
    select courseID from Course 
     where CourseName like '' 
)