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_id
和order_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
我有以下table
order_item
order_id| item_id
--------------------------------
213 | 3
215 | 3
244 | 2
299 | 3
400 | 3
用户输入: item_id
和order_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