2012-11-09 36 views
0

我有這兩個表:另一個表從名稱更新場

tbl_courses 
id user_id course_name 
3 5  First Course 
4 5  Second Course 


tbl_notes 
id user_id course_id 
1 5  3 
2 5  4 

我想寫正在接收更新的課程名稱,一個簡單的合併腳本:course_name

例如,用戶將First Course更改爲Second Course,並要求將此新標題的所有註釋合併到此標題中。

所以我試圖找到一種方法與COURSE_ID更新所有條目tbl_notesFirst Course匹配的Second Course

我送$user_id的ID,$course_id,並$course_name作爲參數

+0

你的意思是哪裏COURSE_ID = 3更新到4? –

+0

是的,但可能會有許多筆記與course_id。這只是一個簡短的例子 – tmartin314

回答

1

如果我正確理解有什麼需要查詢:

SQLFiddleexample

UPDATE `tbl_notes` 
    LEFT JOIN `tbl_courses` 
     ON `tbl_courses`.`user_id` =`tbl_notes`.`user_id` 
     AND `tbl_courses`.id = `tbl_notes`.`course_id` 
    SET `tbl_notes`.`course_id` = 4 
    WHERE `tbl_courses`.`course_name` ='First Course' 
     AND `tbl_courses`.`user_id` = 5 

隨着PHP代碼SQL查詢:

$sql = "UPDATE `tbl_notes` 
LEFT JOIN `tbl_courses` 
    ON `tbl_courses`.`user_id` =`tbl_notes`.`user_id` 
    AND `tbl_courses`.id = `tbl_notes`.`course_id` 
SET `tbl_notes`.`course_id` = $course_id 
WHERE `tbl_courses`.`course_name` ='First Course' 
AND `tbl_courses`.`user_id` =$user_id "; 
0
update tbl_notes set course_id=(select id 
from tbl_courses where course_name='First Course' limit 1)