Sql - 获取使用该项目的先前订单

Sql - get previous order which uses the item

我有以下table

order_item

   order_id|   item_id
    --------------------------------
    213    |    3
    215    |    3
    244    |    2
    299    |    3
    400    |    3

用户输入: item_idorder_id 例如:上例中分别为3 & 299

要求: 我需要找到最近一次售出 item_id 3 商品的订单。 (本例中为 215 order_id)

因为输入(order_id,item_id)是(299,3)。从 table 最近售出商品 3 的订单是 order_id 215 所以,我需要 return (215, 3) 行给用户。

我尝试了以下方法,我知道这是错误的,因为我不知道如何获取上述信息。

select (select oi.item_id from order_item oi where oi.order_id < order_id and rownum =1) 
from order_item where order_id = 299 and item_id = 3  

你能试试这个查询吗?

select max(order_id) from order_item where  order_id < ( 
select order_id from order_item where  order_id = 299 and item_id = 3  ) and item_id = 3;

应该这样做:

select max(order_id) from order_item where  order_id <299 and item_id =3

试试这个 甲骨文

 select order_id,item_id
       from order_item 
       where order_id <299 and item_id = 3 
       and rownum = 1
       order by order_id desc 

SQL 服务器

select top 1 * 
   from order_item 
   where order_id <299 and item_id = 3 
   order by order_id desc