簡體   English   中英

具有多個連接到同一個表的MySQL Update查詢

[英]MySQL Update query with multiple joins to the same table

在我現有的項目數據庫(MySQL)中,有2個表Employee和EmployeeReference。

在此輸入圖像描述

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

每個經理都有一個參考代碼,如果他們引用將存儲在EmployeeReference表中的員工。 他還將在EmployeeReference表中使用自己的參考代碼創建記錄。

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

如何在MySQL中使用同一個表中的多個連接更新查詢? 任何幫助都非常感謝。 謝謝 !

如果我正確理解這個問題,那么以下查詢可以正常工作 它可以進一步優化。

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

嘗試以下查詢以獲得預期結果

SELECT er.*
FROM EmployeeReference er
LEFT JOIN Employee e 
 ON UPPER(Name) LIKE SUBSTRING(er.RefCode,1,3)+'%'
  AND e.Role = 'MNG'
  AND e.EmpID <> er.EmpID;

注意:使用上面的查詢編寫更新查詢

希望這能幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM