php - 在一个查询中从多个表中删除行

标签 php mysql delete-row sql-delete cascading-deletes

在一个查询中从多个表中删除行的正确方法是什么?

我问的原因是因为我正在用 PHP 做这件事。如果我使用多个查询一次从每个表中删除一个,则 PHP 必须多次访问数据库。如果我使用这种方法,会对性能有什么影响吗?

我知道 ON DELETE CASCADE 选项,但这并不适用于所有存储引擎。另外,也有可能在删除父记录的时候不想把子表的所有记录都删除。

最佳答案

DELETE
  t1, t2
FROM
  table1 AS t1 INNER JOIN table2 AS t2
ON
  joinCondition
WHERE
  whereCondition

像往常一样使用 DELETE 查询:要非常小心

此处有更多详细信息:http://dev.mysql.com/doc/refman/5.5/en/delete.html

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

相关文章:

sql - 使用多个 where 子句的多表选择,有没有比自连接更好的方法?

PHP 按钮删除 MYSQL 表输出中的一行

javascript - Oracle 删除语句在 JS 中不起作用

python - 根据条件删除 Pandas Dataframe 中的前几行

php mysql 和分页

php - 高延迟(?)用户的长时间 PHP 执行

PHP - 如何获取 n 深多维数组的所有数组值?

php - react 本地axios ios不针对apache/php进行身份验证

java - 使用 JDBC 读取和更新每一行

java - 尝试使用 Hibernate 保留实体时出错(MappingException : Unknown entity)