一条SQL语句如何执行多条数据的更新(更新的条件是从表中获取多对多关系)
具体需求如下:
一个图书管理,A借阅,一次性借阅3本,是不同的书(表BOOKS管理)。借阅表分AppBooks(借阅人信息)和借阅数据信息表(AppBooksSum)两个表,我的系统有一个更新语句,我想在借阅的时候,将目前图书的数量分别从本次的借阅信息中分别减去这次借阅的三本书的数量。
update books set ResidualNumber=(ResidualNumber-1) where serialID=(SELECT dbo.AppBooksSum.books
FROM dbo.AppBooks INNER JOIN
dbo.AppBooksSum ON dbo.AppBooks.serialID = dbo.AppBooksSum.foreignID
WHERE (dbo.AppBooks.serialID = '0000000021'))
但是由于我这个
SELECT dbo.AppBooksSum.books
FROM dbo.AppBooks INNER JOIN
dbo.AppBooksSum ON dbo.AppBooks.serialID = dbo.AppBooksSum.foreignID
WHERE (dbo.AppBooks.serialID = '0000000021')
这个记录集有可能会返回多条记录,是不同的记录,那么我这个SQL应该怎么去写?
在线急等用!!
[解决办法]
贴记录及要求结果出来看看
如果是一对多关系,应该是以最新(最后)的记录为准
按照后面的查询应该是三条记录,更新的数量不对
是最新 OR 最后的记录为准?
[解决办法]
serialID=(
改成
serialID in (
试一下。