mySQL更新问题

标签 mysql sql-update mysql-error-1248

嘿,我在尝试更新数据库中的表时遇到此错误:

每个派生表必须有自己的别名

这是我尝试更新的 mysql 查询:

 UPDATE (SELECT clientinfo.idNumber, clientinfo.theCompName, clientoffers.idNumber, 
 clientoffers.expTimeWaiting, clientoffers.theDateStart,
 clientoffers.theDateEnd, clientoffers.theOffer, clientoffers.isActive, 
 clientoffers.theType, clientoffers.fixedAmount, clientoffers.fixedUsed
 FROM clientinfo, clientoffers
 WHERE clientoffers.idNumber = clientinfo.idNumber
 AND clientoffers.theDateEnd >= '2010-06-03'
 AND clientoffers.theDateStart <= '2010-06-03'
 AND clientoffers.idNumber = 'NB351560'
 AND clientoffers.isActive = 'YES')
 SET clientoffers.fixedUsed = clientoffers.fixedUsed + 1

这看起来不错,但由于某种原因似乎不起作用?

任何帮助都会很棒! :o)

更新

 sqltemp = "UPDATE clientinfo, clientoffers SET clientoffers.fixedUsed = clientoffers.fixedUsed + 1 WHERE clientoffers.idNumber = clientinfo.idNumber" & _
             "AND clientoffers.theDateEnd >= '2010-06-03'" & _
             "AND clientoffers.theDateStart <= '2010-06-03'" & _
             "AND clientoffers.idNumber = 'NB351560'" & _
             "AND clientoffers.isActive = 'YES'"
        oRecordset.Open sqltemp, oConnection,3,3

它给了我错误 ODBC 驱动程序不支持请求的属性。

我正在使用 Mysql 5.1 和经典 ASP。

大卫

最佳答案

为什么那里有一个选择?有必要吗?

为什么不:

 UPDATE clientinfo, clientoffers

 SET clientoffers.fixedUsed = clientoffers.fixedUsed + 1

 WHERE clientoffers.idNumber = clientinfo.idNumber
 AND clientoffers.theDateEnd >= '2010-06-03'
 AND clientoffers.theDateStart <= '2010-06-03'
 AND clientoffers.idNumber = 'NB351560'
 AND clientoffers.isActive = 'YES'

或者更进一步,如果两个表上的idNumber存在外键约束(或者您可以假设每个clientoffer条目总是有一个相应的clientinfo 条目):

 UPDATE clientoffers

 SET clientoffers.fixedUsed = clientoffers.fixedUsed + 1

 WHERE clientoffers.theDateEnd >= '2010-06-03'
 AND clientoffers.theDateStart <= '2010-06-03'
 AND clientoffers.idNumber = 'NB351560'
 AND clientoffers.isActive = 'YES'

关于mySQL更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971233/

相关文章:

sql - MySQL 错误 1248 (42000) : Every derived table must have its own alias

mysql - MySQL 中的错误 "Every derived table must have its own alias"是什么?

sql - 使用选择查询更新表

sql-server-2008 - SQL Server - 根据另一列值更新列

mysql - MySQL中的错误“每个派生表必须具有自己的别名”是什么?

PHP 从多个表中选择数据

sql - 计算 "complex"t-SQL 语句中更新的记录数

PHP 查询 : How to input data into 2 columns column on the same table at different times

php - 如何从mysql中的多个表中获取值?

mysql - 特定类别贡献最高的用户