有人可以帮我这个SQL查询吗?

时间:2011-08-26 17:13:08

标签: 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编码器一些dbs有点超出我的专业领域。有一个sql专家会有一个很好的解决方案,不必更改我们的数据库架构吗?

编辑*拼写

1 个答案:

答案 0 :(得分:4)

只要您的表格已正确编入索引,并且您正在加入索引字段,并且您的过滤器定位到索引字段,那么查询应该可以很好地执行。

此外,您是仅删除客户购物篮表中登录用户的项目,还是删除数量为< 1?