2016-11-17 126 views
0

當我運行下面的代碼我收到此錯誤信息:SQL子查詢錯誤未知1054列

#1054 - 在 '字段列表'

未知列 'myvaluealerts.symbols.metadada'我已經閱讀了幾篇與此類似的文章,但由於這是我第一次使用SQL數據庫的查詢代碼,所以我並不完全理解我讀過的所有回覆。到目前爲止,我閱讀的內容幫助我改進了這個代碼,使得我只能得到這個錯誤(而不是我已經修復的其他許多其他代碼)。

我有一個SQL數據庫名爲myvaluealerts含有名爲 symbolsusers,並payments三個表。我只在這個查詢中使用symbols表。

我試圖讀取與用戶28相關的數據的單個字段,並將其粘貼到用戶37的相同字段中。「元數據」列是用逗號分隔的文本。

Update `myvaluealerts`.`symbols`.`metadata` , 
(
    Select `myvaluealerts`.`symbols`.`metadata` 
    From `myvaluealerts`.`symbols` 
    Where `myvaluealerts`.`symbols`.`user_id` = 28 and 
    `myvaluealerts`.`symbols`.`symbol` = 'XOM' 
) output 

Set `myvaluealerts`.`symbols`.`metadata` = `output`.`metadata` 
Where `myvaluealerts`.`symbols`.`user_id` = 37 and 
     `myvaluealerts`.`symbols`.`symbol` = 'XOM' 

;

謝謝,達斯汀

+1

似乎你錯過了一個d。 'myvaluealerts'''symbols''metadata' ..我已經更新了你對此的疑問。如果你發佈的代碼是r原來的一個..這可能是你錯誤的原因 – scaisEdge

+0

請用數據庫標記你的問題您正在使用。 –

+0

我必須意外刪除元數據中刪除的'd'。我已經複製並粘貼了上面的代碼,現在第1行出現語法錯誤1064. – Dustin

回答

1

簡化您的查詢使用表別名。您似乎有一些不良表格參考,但我認爲這是你想要的:

Update myvaluealerts.symbols s37 join 
     myvaluealerts.symbols s28 
     on s28.user_id = 28 and s28.symbol = 'XOM' 
    Set s37.metadata = s28.metadata 
Where s37.user_id = 37 and 
     s37.symbol = 'XOM' 
+0

工作。你必須刪除useri_id後在第5行打勾。但它的工作。非常感謝。不幸的是我不明白「s」是什麼。我必須做一些家庭作業。再次感謝 – Dustin