2016-11-17 26 views
0

私は、次のコードを実行すると、私はこのエラーメッセージを取得:SQLサブクエリエラー1054不明列

#1054 - 不明な列 'myvaluealerts.symbols.metadada' 'フィールドリスト' で

を私はこれに似たいくつかの記事を読んだことがありますが、これはSQLデータベースのクエリコードを使った私の最初の経験なので、私が読んだすべての回答を完全に理解していません。私がこれまでに読んだことは、このコードを改良して(私が修正した他の多くのコードではなく)このエラーだけを得ることになったのです。

私は3つの symbolsという名前のテーブル、users、およびpaymentsを含むmyvaluealertsという名前のSQLデータベースを持っています。このクエリではsymbolsテーブルのみを使用しています。

私はユーザー28に関する1つのフィールドのデータを読み込み、ユーザー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' 

;

ありがとう、Dustin

+1

あなたはあなたが欠けているようです。 'myvaluealerts'.'symbols'' metadata' ..私はあなたの質問を更新しました。あなたが投稿したコードが元のものであれば...これはあなたのエラーの理由です。 – 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

関連する問題