mysql - 使用子查询删除更高效

标签 mysql

在这里做一点垃圾收集并使用子查询,我知道这不是很有效。有什么指点吗?

DELETE FROM `carts` WHERE `id` NOT IN (SELECT `cart_id` FROM `sessions`)

基本上它应该从我的购物车表中删除 session 表中没有相应记录的所有记录。

最佳答案

DELETE FROM `carts` c 
left outer join `sessions` s on (s.`cart_id` = c.`id`)
WHERE s.`cart_id` is null

关于mysql - 使用子查询删除更高效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260283/

相关文章:

mysql - 使用准备和执行

MySQL 索引不工作(用例特定场景)

mysql - Sphinx Search 如何索引/处理 JSON 文件?

mysql - 从文件 MySQL 运行 SQL - 用户输入?

php - 使用单连接查询从第二个表中获取所有行数据

php - 为什么这个 PHP 脚本会干扰我的 CSS 布局?

mysql - SQL 两个表的总计百分比如何随时间变化

php - 推进 2.0 模型 :build cannot find database

mysql - 如何从mysql中的字符串中获取子字符串

mysql - 在同一个 SELECT 中使用 MySQL Keywork