mysql - 有人可以帮我解决这个 sql 查询吗?

标签 mysql sql optimization join

因此,在我的工作中,我被要求修复一些在 mysql 5 数据库上运行的 sql 代码,但我卡住了,我也不确定这是否是执行此操作的正确位置,但在这个问题上有一个小的啤酒赏金。好吧,向投票最高的问题发送一些啤酒钱。

基本上,声明需要执行以下操作: 从 customers_basket 中删除行,其中 products.products_quantity < 1 AND LOWER(inventory_t_product_minimum_stock.minimum_quantity) = 'nla'

这是当前声明:

DELETE FROM customers_basket 
WHERE EXISTS
    (SELECT products_id
        FROM inventory_t_product_minimum_stock
        WHERE customers_basket.products_id = 
            inventory_t_product_minimum_stock.products_id            
        AND LOWER(inventory_t_product_minimum_stock.minimum_quantity) = 'nla')

所以实际上所有需要更改的是添加有关 products_quantity < 1 的位,但是,该信息来自不同的表。

为 3 个表编写一个简单的左连接并不困难,但我担心的是,这段代码是在用户登录时执行的,我想连接三个大表对我们来说是一个相当大的问题。我实际上是一名 C 开发人员来编写 javascript 编码器,一些数据库有点超出我的专业领域。那里的一位 sql 专家是否有一个好的解决方案而无需更改我们的数据库模式?

编辑*拼写

最佳答案

只要您的表已正确建立索引,并且您正在加入索引字段,并且您的过滤器以索引字段为目标,查询应该执行得相当好。

此外,您是只删除登录用户的客户购物车表中的项目还是删除数量为 < 1 的所有产品?

关于mysql - 有人可以帮我解决这个 sql 查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208254/

相关文章:

sql - 连接查询中的表顺序

mysql - 如何选择金额总和等于某个值并按特定列(发件人或收件人)分组的所有记录?

c++ - 循环的编译器优化

mysql - 无法理解涉及不同表的不同列的 SQL 查询中的控制流

MYSQL 约束 - 多重检查

sql - 递归相关表达式如何加速不同的查询?

java - 优化代码以提高清晰度和效率

C# mysql连接实践

mysql - 将实体放入层次结构中,还是作为带有查找表的属性?

c++ - 处理指针时,C++ 编译器可以优化掉代码吗?