我的数据库中有两个表。其中一个“订单”包含一组列,其中包含一个整数,表示订单应包含的内容(如 A 的 5 个和 B 的 15 个)。第二个表“production_work”包含相同的订单列和日期,因此每当有人完成订单的一部分时,我都会对其进行跟踪。
所以现在我需要一种快速的方法来知道哪些订单已完成,我希望避免在第一列出现“已完成”表,因为订单是可编辑的,而且保持正确只是更多的逻辑。
这个查询有效,但写得很糟糕。有什么更好的方法来做到这一点?这个查询实际上有 12 个这样的列...我只是在示例中显示其中的 3 个。
SELECT *
FROM orders o
WHERE ud = (SELECT SUM(ud) FROM production_work WHERE order_id = o.ident)
AND dp = (SELECT SUM(dp) FROM production_work WHERE order_id = o.ident)
AND swrv = (SELECT SUM(swrv) FROM production_work WHERE order_id = o.ident)