根据另一个表中的主键查找设置新列值

时间:2015-06-24 11:13:36

标签: mysql syntax key inner-join calculated-columns

我有一个表我想添加一个额外的列,其中列中的值是由另一个表上的主键查找定义的。

我可以通过使用原始表创建 new 表以及所需的额外列来轻松完成此操作:

CREATE TABLE FG_LABELLED
SELECT FG.*, L.PRODUCT_ALIAS
FROM LABEL_LOOKUP AS L INNER JOIN FG
ON FG.P_ID = L.P_ID;

但我无法通过向现有表格添加列找出正确的方法,因为:

ALTER TABLE FG
    ADD COLUMN PRODUCT_ALIAS VARCHAR(27);

UPDATE FG SET PRODUCT_ALIAS =  EXPRESSION;

我可以在这里使用什么表达式来实现与基于内部联接创建新表格相同的效果?

在这种情况下,我无法弄清楚如何确保将内部连接用于在正确的位置缝合标签。如果确实可以做到这一点。

当我尝试

UPDATE  FG
    SET P_LABEL= (SELECT LABEL_LOOKUP.PRODUCT_ALIAS 
    FROM LABEL_LOOKUP INNER JOIN FG ON FG.P_ID = LABEL_LOOKUP);

我得到了

  

错误代码1093.您无法指定目标表格' FG'用于更新   FROM子句。

我正在尝试做什么的正确方法是什么?或者是不可能这样做?

感谢,

石楠

P.S。我是SQL新手

1 个答案:

答案 0 :(得分:2)

您的更新语法应如下所示:

key