如何使用另一个表中的字段更新一个表中的字段? (SQL)
两张表: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 toCOURSES
USER_ID
as field I need to insert intoCOURSES
COURSES
- contains
COURSE_ID
as primary keyINSTRUCTOR_ID
as field that needs to be updated withUSER_ID
field fromCOURSE_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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这是假设您的 DBMS 允许连接更新查询。 SQL Server 绝对允许这样做。 如果你不能做这样的事情,你需要考虑使用子查询。
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.
并非所有数据库供应商(SQL Server、Oracle 等)都以相同的方式实现 Update 语法...您可以在 SQL Server 中使用联接,但 Oracle 不会喜欢那样。 我相信几乎所有人都会接受相关子查询,但是
注意: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
NOTE: The column User_ID in Course_Roster would probably be better named as InstructorId (or Instructor_Id) to avoid confusion
如果用 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?