1

2つのテーブル:

COURSE_ROSTER-含む

  • COURSE_IDの外部キーとしてCOURSES
  • USER_ID挿入する必要があるフィールドとしてCOURSES

COURSES-含まれています

  • COURSE_ID主キーとして
  • INSTRUCTOR_IDUSER_IDからのフィールドで更新する必要があるフィールドとしてCOURSE_ROSTER

UPDATESQL構文はどうなりますか?私はこれを試していますが、良くありません...何かが足りないので、オンラインで見つけることができません。

UPDATE COURSES 
SET COURSES.INSTRUCTOR_ID = COURSE_ROSTER.USER_ID 
WHERE COURSE_ROSTER.COURSE_ID = COURSES.COURSE_ID
4

5 に答える 5

5
    Update Courses
    SET Courses.Instructor_ID = Course_Roster.User_ID
    from Courses Inner Join Course_Roster 
    On Course_Roster.CourseID = Courses.Course_ID

これは、DBMSが更新クエリでの結合を許可していることを前提としています。SQLServerは間違いなくこれを許可します。このようなことができない場合は、サブクエリの使用に目を向ける必要があります。

于 2009-01-13T20:45:57.043 に答える
4

すべてのデータベース ベンダー (SQL Server、Oracle など) が同じ方法で Update 構文を実装しているわけではありません。SQL Server では結合を使用できますが、Oracle はそれを好まないでしょう。ただし、ほぼすべてが相関サブクエリを受け入れると思います

  Update Courses C  
   SET Instructor_ID = 
          (Select User_ID from Course_Roster
           Where CourseID = C.Course_ID)

注: Course_Roster の列 User_ID は、混乱を避けるために InstructorId (または Instructor_Id) という名前を付けたほうがよいでしょう。

于 2009-01-13T20:48:21.143 に答える
2
UPDATE COURSES 
SET COURSES.INSTRUCTOR_ID = COURSE_ROSTER.USER_ID 
FROM COURSES
INNER JOIN COURSE_ROSTER
    ON COURSE_ROSTER.COURSE_ID = COURSES.COURSE_ID
于 2009-01-13T20:47:34.950 に答える
2

COURSE_ROSTER.user_id を入力する場合、なぜ course.instructor_id 列が必要なのですか? 冗長ストレージではありませんか?

于 2009-01-13T20:47:57.460 に答える
1
UPDATE COURSES 
SET INSTRUCTOR_ID = CR.USER_ID 
FROM COURSES C
INNER JOIN COURSE_ROSTER CR   
   ON CR.COURSE_ID = C.COURSE_ID
于 2009-01-13T21:56:23.407 に答える