查询更新和删除两个不同表中的记录

Posted

技术标签:

【中文标题】查询更新和删除两个不同表中的记录【英文标题】:Query to update and delete records in two different tables 【发布时间】:2018-02-19 01:03:09 【问题描述】:

我想编写一个查询,从表中删除记录并更新另一个记录。这是我的查询:

DELETE FROM borrowed_books a WHERE a.id = '$id'  
            AND
             UPDATE books b SET b.nr_copies=b.nr_copies+1 where 
b.id_book=a.id_book 

控制台中的错误说: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version

我正在使用 mysql 和 XAMPP。

【问题讨论】:

【参考方案1】:

你不能在一个查询中做两个动作

你必须使用两个查询

DELETE FROM borrowed_books a WHERE a.id = '$id' 
; 

UPDATE books b 
INNER JOIN borrowed_books a 
SET b.nr_copies=b.nr_copies+1 
where b.id_book=a.id_book 
and a.id = '$id' 
;

使用更新加入

最终你可以在一个命令中检查你的 mysql 驱动程序是否有多个查询

【讨论】:

将它们放入交易中!

以上是关于查询更新和删除两个不同表中的记录的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 使用单个查询更新和更改两个表中的少量列记录

oracle查询重复数据方法

删除两个 MySQL 大表中的匹配记录

oracle 如何根据一个表中记录的变动更新另外一个表中相应的字段

我们可以在 SQL 查询中使用存在来搜索和删除表中的记录吗?

SQL