MYSQL update语句出现问题,怎么解决???

题目是这个:

UPDATE语句(利用一个表中的数据修改另外一个表中的数据)

利用Part表中的零售价格来修改lineitem中的extendedprice,其中extendedprice=part.retailprice * quantity。

然后我的代码是这个

UPDATE LINEITEM

SET L_EXTENDEDPRICE=P_RETAILPRICE*L_QUANTITY

FROM PART

WHERE L_PARTKEY=P_PARTKEY;

结果显示语法错误,但是语法没问题啊
图片说明

然后我又这样弄了

UPDATE LINEITEM

LEFT JOIN PART ON L_PARTKEY=P_PARTKEY

SET L_EXTENDEDPRICE=P_RETAILPRICE*L_QUANTITY;

这样根本就没有任何的反应,得按Ctrl C 才有反应,但是依旧不成功

图片说明

我之前是用了下面的代码成功了,但是现在也不行了,和上一个反应是一样的

UPDATE LINEITEM AS L, PART AS P

SET L_EXTENDEDPRICE=P_RETAILPRICE*L_QUANTITY

WHERE L_PARTKEY=P_PARTKEY;

未成功的图

图片说明

上一次成功的图

图片说明

所以这到底是为什么???该怎么解决???求大佬指导!!!

UPDATE LINEITEM
SET L_EXTENDEDPRICE=P_RETAILPRICE*L_QUANTITY
FROM PART
WHERE L_PARTKEY=P_PARTKEY;

这个有语法问题,update后面是表名,应该类似后面的语句(用了别名那个),不能再用from table,还有后面的既然用了别名L,P建议也加上,类似下面这样

UPDATE LINEITEM AS L, PART AS P
SET L.L_EXTENDEDPRICE=P.P_RETAILPRICE*L.L_QUANTITY
WHERE L.L_PARTKEY=P.P_PARTKEY;

字段命名也不规范,主键一般用id即可,不需要加上前缀,后面联合查询通过别名区分即可,比如L.id = P.id,现在无法正常更新,建议看看数据量,是否执行太慢导致。

UPDATE LINEITEM AS L
INNER JOIN PART AS P ON L.L_PARTKEY=P.P_PARTKEY
SET L.L_EXTENDEDPRICE=P.P_RETAILPRICE*L.L_QUANTITY ;