Mysql SQL插入到查询语法中
我正在尝试运行一个MySQL查询,以便根据审查ID(ID\U product\U comment)将数据从旧表(ps\U product\U review/rate)复制到新表(ps\U product\U comment/grade)。但我对SQL查询有点迷茫,这就是我所拥有的,但不断出现错误Mysql SQL插入到查询语法中,mysql,Mysql,我正在尝试运行一个MySQL查询,以便根据审查ID(ID\U product\U comment)将数据从旧表(ps\U product\U review/rate)复制到新表(ps\U product\U comment/grade)。但我对SQL查询有点迷茫,这就是我所拥有的,但不断出现错误 INSERT INTO ps_product_comment [(grade)] SELECT rate FROM ps__product_review [WHERE ps__p
INSERT INTO ps_product_comment [(grade)]
SELECT rate
FROM ps__product_review
[WHERE ps__product_review.id_product_comment=ps_product_comment.id_product_comment];
有人能帮我写正确的查询吗
编辑:基本上,我正在尝试填充下表中的Grade列
旧表(ps\U产品\U审查)
删除方括号,我认为您缺少联接(因为您在
where
子句中使用了该联接):
如果要使用其他表中的数据更新表,请使用update with JOIN
UPDATE ps_product_comment
JOIN ps__product_review
ON ps__product_review.id_product_comment = ps_product_comment.id_product_comment
SET ps_product_comment.grade = ps__product_review.rate;
当你在这里提问时,你应该提供尽可能多的信息。例如,您会遇到哪些错误。不管怎样,你都应该去掉方括号。在文档中,方括号表示这部分查询是可选的。这不起作用,它从旧表复制了排名/等级,并将其粘贴到新表的底部,而不是正确的列/行中。我更新了问题以澄清我的意思。@Naz:-您需要在insert和select子句中添加列名,您就完成了!只是尝试过,但它仍然将数据添加到表的末尾而不是填充空白列。如果要填充列,则必须使用Update。
INSERT INTO ps_product_comment (grade)
SELECT rate
FROM ps__product_review inner join ps_product_comment on
ps__product_review.id_product_comment=ps_product_comment.id_product_comment;
UPDATE ps_product_comment
JOIN ps__product_review
ON ps__product_review.id_product_comment = ps_product_comment.id_product_comment
SET ps_product_comment.grade = ps__product_review.rate;