mysql - 在一个查询中从两个表中删除行

标签 mysql cascade

我有两个表:orders 和 orders_items。两者共享字段 orderID。

我想从两个表中删除 orderID=500 的所有行,但我只需要在一个查询中执行此操作。这可能吗?

最佳答案

当然你可以做到:

DELETE FROM `table1`, `table2` WHERE `orderId` = 500

参见 http://dev.mysql.com/doc/refman/5.0/en/delete.html

[编辑:]

这就是整个技巧:

DELETE FROM `orders`, `orders_items` 
  USING `orders` 
  INNER JOIN `orders_items` ON `orders`.`orderId` = `orders_items`.`orderId` 
  WHERE `orders`.`orderId`= 500

如果 orderId 是 varchar,则将语句更改为 = '500'

关于mysql - 在一个查询中从两个表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339851/

相关文章:

nhibernate - 多对多 : Delete one side, 关系条目但不要删除对方

nhibernate - 如何判断一个引用的对象是否可以删除?

python - 删除级联的 Django 在 PostgreSQL 中没有产生正确的约束

mysql - 使用 DATE 和 DATETIME 时行数不同

java - MySQL每次都打开一个新的Statement?

没有 mdi 父级的 C# 级联表单?

java - 如何在标有 CascadeType.ALL 的关系中添加持久实体?

php - 从 mysqli bind_param 捕获警告信息

mysql - 查询月份等于的数据库

mysql - 选择 mysql 中两个表的每月数据计数