我有一个表'Item_status_history',其中包含项目标识、状态、created_at和关联的order_id。此表保存项目所经历的状态历史记录。
我正在尝试查询具有多个状态“已发运”的所有item_id,并且在“已退回”之后必须至少有一个已发运状态。
在图片中,我们可以看到第一组和第三组是我需要的item_id。第四组数据有2个已发运,但它们在“已退回”之前。请注意,这些状态不是按created_at排序的。我需要检查在发送退货状态后是否有已发运状态。
我尝试了几种方法。我尝试选择所有item_id及其状态为“已发运”的id,并在子查询中使用它来再次查找状态为“已发运”但不等于相同id的id。但这不起作用
select item_id from item_status_history as ISH where ISH.status = "Shipped" and ISH.item_id in (Select
item_id
from item_status_history
Where status = "Shipped" and item_status_history.id <> ISH.id
)
这我知道只是它的一部分,然后我需要找到从产生的身份证,哪些已返回,如果它是在发货后。
请参考下图
1条答案
按热度按时间e4eetjau1#
它一定是一些行的唯一顺序,也许是一些ID?但是我们可以假设,如果
Shipped
和Retured
是在同一时间比的,那么关于Shipped
的比条件在Returned
之后就满足了。