SQL子查询错误1054未知列

时间:2016-11-17 20:21:01

标签: mysql sql

当我运行以下代码时,我收到以下错误消息:

  

#1054 - '字段列表'中的未知列'myvaluealerts.symbols.metadada'

我已经阅读了几篇与此类似的帖子,但由于这是我第一次使用SQL数据库的查询代码,我并不完全理解我读过的所有回复。到目前为止我所阅读的内容帮助我将此代码改进到了我只收到此错误的位置(而不是我修复过的其他错误)。

我有一个名为myvaluealerts的SQL数据库,其中包含三个名为的表 symbolsuserspayments。我只在这个查询中使用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 个答案:

答案 0 :(得分: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'