因此,在我的工作中,我被要求修复一些在 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/