【问题标题】:Can someone please help me with this sql query?有人可以帮我处理这个 sql 查询吗?
【发布时间】:2011-08-26 17:13:07
【问题描述】:

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

该语句基本上需要做以下事情: 从 customers_basket 中删除 products.products_quantity 的行

这是当前的声明:

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

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

编辑*拼写

【问题讨论】:

  • 您是否测试过您提到的JOIN 方法?我不会假设它表现得不够好,尤其是如果你有适当的索引。此外,如果您可以为所涉及的表提供完整的架构,这将有所帮助。

标签: mysql sql optimization join


【解决方案1】:

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

另外,您是只删除客户购物篮表中的用户登录的项目还是所有数量为

【讨论】:

  • “过早的优化是万恶之源”
猜你喜欢
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 2020-08-26
相关资源
最近更新 更多