具有多个连接到同一个表的MySQL Update查询

时间:2016-11-17 07:43:39

标签: mysql

在我现有的项目数据库(MySQL)中,有2个表Employee和EmployeeReference。

enter image description here

Employee表具有Role列,可以是Employee(或)Manager

每个经理都有一个参考代码,如果他们引用将存储在EmployeeReference表中的员工。他还将在EmployeeReference表中使用自己的参考代码记录。

现在我们要使用mangager的EmployeeID更新EmployeeReference表中的Reference Code列,而不是现有的Reference Code。

如何在MySQL中使用同一个表中的多个连接更新查询? 任何帮助都非常感谢。谢谢!

2 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,那么以下查询可以正常工作。它可以进一步优化。

SELECT * FROM `EmployeeReference` c INNER JOIN (SELECT a.RefCode,a.EmpId FROM `EmployeeReference` a INNER JOIN Employee b ON a.EmpID = b.EmpId WHERE b.Role = 'MNG') d ON c.RefCode = d.RefCode  

UPDATE `EmployeeReference` c INNER JOIN (SELECT a.RefCode,a.EmpId FROM `EmployeeReference` a INNER JOIN Employee b ON a.EmpID = b.EmpId WHERE b.Role = 'MNG') d ON c.RefCode = d.RefCode SET c.RefCode = d.EmpId

答案 1 :(得分:0)

尝试以下查询以获得预期结果

$.ajax({
    url: 'Your url here',
    data: formData,
    type: 'POST',
    contentType: false,
    processData: false,
    //...Other options like success and etc
})

注意:使用上述查询编写更新查询

希望这可以帮助你。