【问题标题】:#1248 - Every derived table must have its own alias - can´t find the reason#1248 - 每个派生表都必须有自己的别名 - 找不到原因
【发布时间】:2013-03-15 21:30:30
【问题描述】:

我收到此错误:

#1248 - 每个派生表都必须有自己的别名

查询是:

UPDATE rifa
SET maxRifas=(
              (SELECT maxRifas 
               FROM (SELECT * FROM rifa AS crifa)
               WHERE crifa.id=1)
              -1)
WHERE rifa.id=1;

请帮忙。

【问题讨论】:

    标签: mysql mysql-error-1248


    【解决方案1】:

    嵌套查询在 FROM 中使用时必须指定别名。

    UPDATE rifa 
    SET maxRifas=
      (
          (SELECT maxRifas 
           FROM (SELECT * 
                 FROM rifa
                ) as crifa 
           WHERE crifa.id=1
          )-1
       )     
    WHERE rifa.id=1;
    

    【讨论】:

    • 查询:UPDATE rifa SET maxRifas=( (SELECT maxRifas FROM (SELECT * FROM rifa) as crifa WHERE crifa.id=1)-1 谢谢 :) ) WHERE rifa.id=1;
    【解决方案2】:

    试试这个

     UPDATE rifa SET maxRifas= (SELECT (maxRifas - 1) from rifa WHERE id=1)  ;
    

    【讨论】:

    • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“WHERE rifa.id=1)”附近使用正确的语法
    • @echo_me 我只是在清理他的代码作为新答案,看到你的并意识到,我为什么不重写它???
    • 我没听懂你的意思?你要回答吗?
    • 我已经收到此错误:/ #1093 - 您不能在 FROM 子句中指定目标表 'rifa' 进行更新
    猜你喜欢
    • 2014-04-30
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多