Ada*_*ski 115 mysql sql sql-update
我有一个更新三个表的函数,但我使用三个查询来执行此操作.我希望使用更方便的方法进行良好实践.
如何使用单个查询更新MySQL中的多个表?
小智 436
举两个表的情况下,Books和Orders.在情况下,我们增加了图书的数量在一个特定的顺序与Order.ID = 1002在Orders表,然后我们还需要减少由在相同数量在我们的股票提供书籍总数Books表.
UPDATE Books, Orders
SET Orders.Quantity = Orders.Quantity+2,
Books.InStock = Books.InStock-2
WHERE
Books.BookID = Orders.BookID
AND Orders.OrderID = 1002;
Run Code Online (Sandbox Code Playgroud)
Wod*_*din 63
UPDATE t1
INNER JOIN t2 ON t2.t1_id = t1.id
INNER JOIN t3 ON t2.t3_id = t3.id
SET t1.a = 'something',
t2.b = 42,
t3.c = t2.c
WHERE t1.a = 'blah';
Run Code Online (Sandbox Code Playgroud)
要查看要更新的内容,可以将其转换为select语句,例如:
SELECT t2.t1_id, t2.t3_id, t1.a, t2.b, t2.c AS t2_c, t3.c AS t3_c
FROM t1
INNER JOIN t2 ON t2.t1_id = t1.id
INNER JOIN t3 ON t2.t3_id = t3.id
WHERE t1.a = 'blah';
Run Code Online (Sandbox Code Playgroud)
Ste*_*les 33
您也可以使用一个查询来执行此操作,如下所示:
UPDATE table1,table2 SET table1.col=a,table2.col2=b
WHERE items.id=month.id;
Run Code Online (Sandbox Code Playgroud)
当然,只需发送一个查询.您可以在此处阅读有关联接的更多信息:http://dev.mysql.com/doc/refman/5.0/en/join.html.对于您可以在这里阅读的多个表更新进行排序和限制还有一些限制:http://dev.mysql.com/doc/refman/5.0/en/update.html(只需按ctrl + f"join").
| 归档时间: |
|
| 查看次数: |
233070 次 |
| 最近记录: |