gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 06:25:57 25 4
gpt4 key购买 nike

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

我可以通过使用原始表和所需的额外列创建一个表来轻松做到这一点:

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);

我明白了

Error code 1093. You can't specify target table 'FG' for update in FROM clause.

做我想做的事情的正确方法是什么?还是不可能做到?

谢谢,

希瑟

附注我是 SQL 新手

最佳答案

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

UPDATE FG 
INNER JOIN LABEL_LOOKUP ON FG.P_ID = LABEL_LOOKUP.P_ID
SET FG.P_LABEL=LABEL_LOOKUP.PRODUCT_ALIAS;

关于mysql - 根据另一个表中的主键查找设置新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com