Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用其他表中的值更新字段值_Mysql - Fatal编程技术网

Mysql 如何使用其他表中的值更新字段值

Mysql 如何使用其他表中的值更新字段值,mysql,Mysql,我有四个表格,分别是候选人姓名、课程类型、感兴趣的课程和所需的入学人数。候选表与三个表中的其余表具有多对一关系 候选表如下所示: 程序类型表: 兴趣表中的项目: 所需的_摄入量表: 我试图用相应表中的相应值替换候选表中的program_类型、program_of_interest、所需的_摄入id。 在这个线程的帮助下,我可以根据需要选择值。以下是我要选择的解决方案: SELECT c.id, p.value as 'Program type', p1

我有四个表格,分别是候选人姓名、课程类型、感兴趣的课程和所需的入学人数。候选表与三个表中的其余表具有多对一关系

候选表如下所示:

程序类型表:

兴趣表中的项目:

所需的_摄入量表:

我试图用相应表中的相应值替换候选表中的program_类型、program_of_interest、所需的_摄入id。 在这个线程的帮助下,我可以根据需要选择值。以下是我要选择的解决方案:

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`