【问题标题】:Database SQL Query - #1242 - Subquery returns more than 1 row数据库 SQL 查询 - #1242 - 子查询返回多于 1 行
【发布时间】:2014-03-05 15:20:59
【问题描述】:

我在我的一个表中添加了额外的列,我必须根据另一个表中的数据通过匹配两个表的 qText 列来更新这个额外的列。

为了澄清两列中的 qtext 是否相同,请从 Yetkinlik 表中更新工作集中的 ytype 列。

update worksets set yType=(select ytype from yetkinlik) where qText =(select qText from yetkinlik);

这个 sql 代码给了我类似的错误

#1242 - Subquery returns more than 1 row

提前致谢

【问题讨论】:

    标签: sql database phpmyadmin


    【解决方案1】:

    您不能有返回多个结果的子查询。这就是您的错误消息报告的问题。如果我正确理解您要完成的工作,您的查询应该更像:

    UPDATE w
    SET yType = y.yType
    FROM worksets w
      INNER JOIN yetkinlik y
        ON w.qText= y.qText
    

    这应该根据来自 Yetkinlik 表的匹配数据更新工作集表。

    【讨论】:

    • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“FROM 工作集 w INNER JOIN yetkinlik y ON w.qText=y.qText”附近使用正确的语法
    • 哎呀。我处于 SQL Server 模式。那将是正确的 SQL Server 答案。
    • 那我该怎么办?
    • 对不起,已经几个月了,但我相信在 MySql 中它更像是: >
    【解决方案2】:

    你做不到

    yType=(select ytype from yetkinlik)
    

    在这种情况下;这可能会带来多个结果。

    改为考虑

    yType=(select ytype from yetkinlik limit 1)
    

    ...或类似的东西。此外,

    qText =(select qText from yetkinlik)
    

    应该看起来像

    qText in (select qText from yetkinlik)
    

    ...或类似的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2020-08-28
      • 1970-01-01
      相关资源
      最近更新 更多