0

私はこれらの2つのテーブルを持っています:

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 CourseSecond Course、この新しいタイトルのすべてのメモをこのタイトルにマージするように要求したとします。

だから私はのIDと一致するようにtbl_notesからのすべてのエントリを更新する方法を見つけようとしていますFirst CourseSecond Course

$user_id$course_id、および$course_nameをパラメーターとして送信しています

4

2 に答える 2

1

私が正しく理解している場合、必要なもののクエリがあります:

SQLFiddle の例

    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 ";
于 2012-11-09T08:01:38.487 に答える
0
update tbl_notes set course_id=(select id  
from tbl_courses where course_name='First Course' limit 1)
于 2012-11-09T05:49:51.413 に答える