2015-04-28 138 views
0
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的告訴我,當我嘗試運行此查詢:有人可以幫我調試這個MySQL查詢嗎?

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

這裏是我的結構是什麼樣子:

Structure example

我要帶上value列線2逐行排列,將最後兩行留空,以修復由於在列的頂部放置兩條額外的行而導致的導入錯誤。

+1

不是像這樣嵌套子選擇,而是考慮自連接。我正在爲此掃除sqlfiddle。 – mabi

回答

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 - 未知列在 'where子句' 't1.value_id'。

這個錯誤是關於規則 - 你不能在子查詢中調用父表。這是關於查詢內部的命名空間。所以,如果你

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

不能使用a(select from b)順便說一句,你不能在a級別訪問b你只能使用b1

+1

在我點擊發布按鈕之前的秒數;-)這裏是小提琴:http://sqlfiddle.com/#!9/b343f/1 現在,如果您還可以添加爲什麼't1'不解析爲別名會使它完成。 – mabi

+0

你們真棒,非常感謝。我同意@mabi。 –

相關問題