MYSQL嵌套查询新手问题

时间:2011-01-26 05:52:10

标签: sql mysql mysql-error-1093

我正在尝试增加'公司'表中的'sellingDate'字段。

UPDATE company 
   SET sellingDate = ((SELECT DATE_ADD((SELECT sellingDate 
                                          FROM company 
                                         WHERE cid = '35'), INTERVAL 1 DAY))) 
 WHERE cid = '35';

此查询给出了一个错误说明:

  

错误代码:1093
  您无法在FROM子句

中为更新指定目标表'company'

我在这里做错了什么?

4 个答案:

答案 0 :(得分:2)

使用:

UPDATE company 
   SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY)
 WHERE cid = '35'

MySQL不允许UPDATE语句中的子查询针对同一个表,但此示例不需要子查询。由于某些奇怪的原因,UPDATE语句中的自联接不会返回1093错误,尽管它是相同的逻辑。

答案 1 :(得分:0)

尝试:

UPDATE company SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35';

答案 2 :(得分:0)

您不能使用要更新的同一个表中的子查询 但是,您可以通过此查询实现相同的目标

UPDATE company SET sellingDate=DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35';

答案 3 :(得分:0)

为什么需要使用嵌套查询来增加此字段?

UPDATE company SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35';