我正在使用一個複雜的MySQL數據庫表收集表單數據。我簡單的一個例子表的佈局以下稱爲測試:MySQL更新與SUBQUERY同表
|FormID|FieldName| FieldValue |
| 1 | city | Houston |
| 1 | country | USA |
| 2 | city | New York |
| 2 | country |United States|
| 3 | property| Bellagio |
| 3 | price | 120 |
| 4 | city | New York |
| 4 |zip code | 12345 |
| 5 | city | Houston |
| 5 | country | US |
通過phpmyadmin我需要全球更新一些表格,具體我想更新所有fieldValue方法條目「美國美國」與字段名‘國家’具有相同FormID爲字段名‘城市’和fieldValue方法‘休斯頓’。
我可以很容易地顯示這些條目SELECT語句使用子查詢任一或通過使用INNER JOIN:
SELECT FieldValue
FROM test
WHERE FormID
IN (
SELECT FormID
FROM test
WHERE FieldName = "city"
AND FieldValue = "Houston"
)
AND FieldName = "country"
或者:
SELECT a.FieldValue
FROM test a
INNER JOIN test b ON a.FormID = b.FormID
WHERE a.FieldName = "country"
AND b.FieldName = "city"
AND b.FieldValue = "Houston"
但是我嘗試撰寫我的更新聲明我得到某種形式的MySQL錯誤,指示我無法在子查詢中引用同一個表或內部聯接或聯合方案。我甚至創建了一個視圖並試圖在更新語句中引用它,但沒有解決。 有沒有人有任何想法如何幫助我?
可能重複的[Mysql錯誤1093 - 無法指定目標表更新在FROM子句](http://stackoverflow.com/questions/45494/mysql-error- 1093-着-指定焦油得到表換更新功能於從子句) – Ian 2014-04-08 15:54:03