有人可以帮我调试这个MySQL查询吗?

时间:2015-04-28 17:08:10

标签: mysql sql

 UPDATE catalog_product_entity_text t1 SET value = (SELECT value FROM
 (SELECT value FROM catalog_product_entity_text t2 WHERE t2.value_id =
 (t1.value_id+2)) AS t3)

这是我尝试运行此查询时PhpMyAdmin告诉我的内容:

#1054 - Unknown column 't1.value_id' in 'where clause'

这是我的结构:

Structure example

我想将value个列行各引出2行,最后两行留空,修复因在列顶部放置两行以来导致的导入错误。

1 个答案:

答案 0 :(得分:2)

UPDATE catalog_product_entity_text t1 
INNER JOIN catalog_product_entity_text t2
ON t2.value_id = t1.value_id+2
SET t1.value = t2.value

更新1 @mabi如果你在谈论OP #1054 - 未知栏' t1.value_id'在' where子句'

此错误与规则有关 - 您无法在子查询中调用父表。它是关于查询中的命名空间。所以,如果你这样做

select * 
from a 
join (
  select *
  from b
) as b1

a时无法使用(select from b),而ba无法使用b1 {1}}。