如何将此连接值分配回其表?

BB *_* ON 2 mysql sql database

我有MySQL的初学麻烦.我正在尝试根据零件的部门和类别构建一个包含十位数字母数字部件号的DB.例如,"Bar"类的部门"Foo"的一部分可能是FOBAR10000.部门和类存储在它们自己的表中,因此我将部分表中的ID存储为部件而不是字符串"FO"和"BAR".

我想出了一个MySQL查询来查找和连接完整的部件名称.

SELECT pl.idPartsList as 'resultid', concat(pd.DeptShortName, pc.ClassShortName,pl.PartIntID) as 'Fullname'
FROM partdepartments pd, partclasses pc, partslist pl
WHERE pl.PartDeptId = pd.idPartDepartments and pl.PartClassID = pc.idPartClasses;
Run Code Online (Sandbox Code Playgroud)

哪个产生:

resultid | Fullname
---------------------
1        | FOBAR10000
Run Code Online (Sandbox Code Playgroud)

我想将此结果分配回PartFullAlphaID列下的部分,如下所示,以避免经常运行此查询.

之前:

idPartslist | PartDeptID | PartClassID | PartIntID | PartFullAlphaID
---------------------------------------------------------------------
1           | 1          | 1           | 10000     |          
Run Code Online (Sandbox Code Playgroud)

后:

idPartslist | PartDeptID | PartClassID | PartIntID | PartFullAlphaID
---------------------------------------------------------------------
1           | 1          | 1           | 10000     | FOBAR10000         
Run Code Online (Sandbox Code Playgroud)

但以下不起作用:

UPDATE test_db_1.partslist 
SET PartFullAlphaID = Fullname 
WHERE test_db_1.partslist.idPartsList = resultid;
Run Code Online (Sandbox Code Playgroud)

因为:错误代码:1054.'where子句'中的未知列'resultid'

如何将此字符串值分配回零件?

bw_*_*ezi 5

这是已连接表的更新.
试试这个查询:

UPDATE partslist pl
    JOIN partdepartments pd ON pl.PartDeptId = pd.idPartDepartments
    JOIN partclasses pc ON pl.PartClassID = pc.idPartClasses
SET pl.PartFullAlphaID = concat(pd.DeptShortName, pc.ClassShortName, pl.PartIntID)
Run Code Online (Sandbox Code Playgroud)

另请参阅stackoverflow.com/../how-to-use-join-in-update-query