从另一个表中的名称更新字段

时间:2012-11-09 05:46:00

标签: php mysql

我有这两个表:

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,并已请求将具有此新标题的所有注释合并到此标题中。

因此,我正在尝试使用tbl_notes中的course_id更新First Course中的所有条目,以匹配Second Course

的ID

我发送$user_id$course_id$course_name作为参数

2 个答案:

答案 0 :(得分: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 ";

答案 1 :(得分:0)

update tbl_notes set course_id=(select id  
from tbl_courses where course_name='First Course' limit 1)