我已经创建了两个表,表和数据插入值如下:
create table product ( pid number(10) primary key, pname varchar2(30) ); INSERT INTO product values(100,'Apple'); INSERT INTO product values(101,'Banana'); INSERT INTO product values(102,'Pinaple'); INSERT INTO product values(103,'Orange'); create table purchase( invid number(10) primary key, pid number(10), pprice number(10) ); alter table purchase add(constraint pid_fk FOREIGN KEY (pid) references product(pid)); INSERT INTO purchase values(10,101,30); INSERT INTO purchase values(11,103,35); INSERT INTO purchase values(12,103,9); INSERT INTO purchase values(13,103,22); INSERT INTO purchase values(14,101,12);
现在我已经选择表购买显示给出数据
invid pid pprice 10 101 30 11 103 35 12 103 9 13 103 22 14 101 12
现在我想成为最后插入价格 pid=103 现在需要显示 pprice=22 我已经准备好使用两个查询完成任务,例如:
select max(invid) from purchase where pid=103;
结果是 22 并运行下一条语句
select max(pprice) from purchase where invid=13;
显示结果=22 我想使用运行一个语句来显示结果 22,
最佳答案
可能最直接的方法是使用子查询:
SELECT MAX(pprice)
FROM purchase
WHERE invid = (SELECT MAX(invid) FROM purchase WHERE pid = 103)
旁注,您不需要根据示例数据进行 MAX()
pprice
,但我保留了这种方式,以防您实际需要它数据集。
关于sql - 如何使用多个查询选择最高价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47638307/