【发布时间】:2013-07-25 14:55:14
【问题描述】:
我正在尝试对 2 个表进行更新,该表也有一个视图连接,连接了另外两个表。
我没有收到语法错误,但受影响的行为零,所以我想知道逻辑是如何编写的。这就是我尝试过的:
UPDATE resources R
INNER JOIN cost C
ON R.rid=R.rid
INNER JOIN users U
ON R.uid=U.uid
INNER JOIN money M
ON M.bid=C.bid
SET R.q = R.q - C.q, M.q = M.q - 1
WHERE C.bid=? AND U.uid= ?
如果我删除查询 M.q = M.q - 1 的这一部分和 M 的连接,它工作正常,但如果我添加它,那么每个行都不会更新。
该查询支持根据cost quantity 从resources 中删除总数,并从表money 字段q 中删除1。
我该如何解决这个问题 =/?
【问题讨论】:
-
可能重复
http://stackoverflow.com/questions/4361774/mysql-update-multiple-tables-with-one-query -
该链接中没有一个答案包括联接。所以我看不出它对我的情况有何帮助。
-
你可以参考这个链接
http://stackoverflow.com/questions/3707815/update-multiple-tables-in-a-single-update-statement-with-left-join。如果您使用的是 MS-SQL,那么 Sql 2008 有一个Merge语句,您可以通过它在单个块中执行多个语句。请参阅此http://stackoverflow.com/questions/2695116/update-multiple-table-column-values-using-single-query -
好吧,我什至不知道我是否需要左连接,因此我为什么要寻求帮助。 :)
-
这两个链接也不是
mysql所以对我的情况再次没有帮助。