Mysql 如何使用其他表中的值更新字段值
我有四个表格,分别是候选人姓名、课程类型、感兴趣的课程和所需的入学人数。候选表与三个表中的其余表具有多对一关系 候选表如下所示: 程序类型表: 兴趣表中的项目: 所需的_摄入量表: 我试图用相应表中的相应值替换候选表中的program_类型、program_of_interest、所需的_摄入id。 在这个线程的帮助下,我可以根据需要选择值。以下是我要选择的解决方案:Mysql 如何使用其他表中的值更新字段值,mysql,Mysql,我有四个表格,分别是候选人姓名、课程类型、感兴趣的课程和所需的入学人数。候选表与三个表中的其余表具有多对一关系 候选表如下所示: 程序类型表: 兴趣表中的项目: 所需的_摄入量表: 我试图用相应表中的相应值替换候选表中的program_类型、program_of_interest、所需的_摄入id。 在这个线程的帮助下,我可以根据需要选择值。以下是我要选择的解决方案: SELECT c.id, p.value as 'Program type', p1
SELECT
c.id,
p.value as 'Program type',
p1.value as 'Program of interest',
d.value as 'Desired intake'
FROM candidate c
JOIN program_type p on p.id = c.program_type
JOIN program_of_interest p1 on p1.id = c.program_of_interest
JOIN desired_intake d on d.id = c.desired_intake
我的问题是如何将候选表中的ID替换为它们各自的值?您可以使用update basend on join as
Update candidate c
INNER JOIN program_type p on p.id = c.program_type
INNER JOIN program_of_interest p1 on p1.id = c.program_of_interest
INNER JOIN desired_intake d on d.id = c.desired_intake
set c.program_type = p.value,
c.program_of_interest = p1.value,
c.desired_intake = d.value
但似乎很奇怪,您想要更新例如:program_type的值为c.program_type=p.value
您正在使用program_type加入p.id=c.program_type您好,感谢您的快速响应。然而,查询返回False这是MySQL所说的错误:文档1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第5行的“JOIN program_type p on p.id=c.program_type JOIN program_of_interest p1 on p”附近使用的正确语法。我尝试了更新的查询,但给出了错误1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解第7i行“intain=d.value”附近使用的正确语法再次尝试,新错误1054-字段列表中的未知列“c.program_type”尝试了新答案,出现新错误1452-无法添加或更新子行:外键约束失败migrationproject.candidate,约束FK_C8B28E441CBFA1E4`外键程序引用程序id`