【发布时间】:2010-02-09 15:48:50
【问题描述】:
我遇到了一个大问题,我尝试了一整天,但没有找到任何解决方案。希望你能帮助我吗?
我有两张桌子:
第一个名为“orders”:
orders_id | orders_date | .....
1 xxxxxxxxxx
2 xxxxxxxxxx
3 xxxxxxxxxx
第二个是“orders_history”:
orders_id | order_status_id | date_added
1 1 2009-10-01
1 2 2010-01-01
2 1 2010-02-01
3 1 2010-02-01
所以现在我想要所有 order_status_id = '1' 的订单
我也尝试过使用 MAX、HAVING、GROUP BY、...子选择,但我还没有找到任何解决方案。我知道这并不难,但我已经完成了...... 是不是有点像:
SELECT orders.*, orders_history.* FROM orders, orders_history WHERE orders_history.order_status_id <= '1'
但是我也得到了 order_id 1 的订单
希望您能提供帮助。谢谢!
萨沙
为了进一步说明,发布者的“orders_history”表会随着时间的推移跟踪所有订单的状态。目标是查找所有当前订单状态为 1 的订单。订单 ID#1 当前的状态为 2,因此不应包含在结果中。
假设订单状态会随着时间的推移而上升,并且永远不会下降,因此订单状态和添加日期会不断增加。
【问题讨论】:
-
如果您只想 order_status_id 为 1,请将其设为 '= 1',而不是 '
-
一个问号还不够!?!?!?!?
-
重复处理怎么样?
-
对于如何确定订单处于什么状态存在一些困惑。它是基于 MAX(order_status_id) 还是 MAX(date_added)?
-
我已编辑问题以添加我对问题的理解。 @codeworxx - 检查我是否正确。