2012-11-09 35 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)