如何使用另一个表中的字段更新一个表中的字段? (SQL)

发布于 2024-07-11 22:09:46 字数 679 浏览 8 评论 0原文

两张表:

COURSE_ROSTER - 包含

  • COURSE_ID 作为COURSES
  • 的外键USER_ID 作为我需要插入到 COURSES 中的字段

COURSES - 包含

  • COURSE_ID 作为主键
  • INSTRUCTOR_ID 作为需要使用 COURSE_ROSTER 中的 USER_ID 字段进行更新的字段

UPDATE< /code> sql语法是什么? 我正在尝试这个,但没有效果......我丢失了一些东西,而且我无法在网上找到它。

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

Two tables:

COURSE_ROSTER - contains

  • COURSE_ID as foreign key to COURSES
  • USER_ID as field I need to insert into COURSES

COURSES - contains

  • COURSE_ID as primary key
  • INSTRUCTOR_ID as field that needs to be updated with USER_ID field from COURSE_ROSTER

What would the UPDATE sql syntax be? I am trying this, but no good... I'm missing something and I can't find it online.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

尬尬 2024-07-18 22:09:46
    Update Courses
    SET Courses.Instructor_ID = Course_Roster.User_ID
    from Courses Inner Join Course_Roster 
    On Course_Roster.CourseID = Courses.Course_ID

这是假设您的 DBMS 允许连接更新查询。 SQL Server 绝对允许这样做。 如果你不能做这样的事情,你需要考虑使用子查询。

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

This is assuming that your DBMS allows for joins on your update queries. SQL Server definitely allows this. If you cannot do something like this you need to look towards using a subquery.

半透明的墙 2024-07-18 22:09:46

并非所有数据库供应商(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)以避免混淆

Not all database vendors (SQL Server, Oracle, etc.) Implement Update syntax in the same way... You can use a join in SQL Server, but Oracle will not like that. I believe just about all will accept a correclated subquery however

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

NOTE: The column User_ID in Course_Roster would probably be better named as InstructorId (or Instructor_Id) to avoid confusion

羁绊已千年 2024-07-18 22:09:46
UPDATE COURSES 
SET COURSES.INSTRUCTOR_ID = COURSE_ROSTER.USER_ID 
FROM COURSES
INNER JOIN COURSE_ROSTER
    ON COURSE_ROSTER.COURSE_ID = COURSES.COURSE_ID
UPDATE COURSES 
SET COURSES.INSTRUCTOR_ID = COURSE_ROSTER.USER_ID 
FROM COURSES
INNER JOIN COURSE_ROSTER
    ON COURSE_ROSTER.COURSE_ID = COURSES.COURSE_ID
青衫儰鉨ミ守葔 2024-07-18 22:09:46

如果用 COURSE_ROSTER.user_id 填充,为什么还需要 course.instructor_id 列? 这不是多余的存储吗?

Why do you need the column course.instructor_id if you fill it with COURSE_ROSTER.user_id? Isn't it redundant storage?

与他有关 2024-07-18 22:09:46
UPDATE COURSES 
SET INSTRUCTOR_ID = CR.USER_ID 
FROM COURSES C
INNER JOIN COURSE_ROSTER CR   
   ON CR.COURSE_ID = C.COURSE_ID
UPDATE COURSES 
SET INSTRUCTOR_ID = CR.USER_ID 
FROM COURSES C
INNER JOIN COURSE_ROSTER CR   
   ON CR.COURSE_ID = C.COURSE_ID
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文