【发布时间】:2013-04-14 01:10:57
【问题描述】:
从桌子上
create table seeplai.item(
itm_id serial primary key,
itp_id int not null references seeplai.item_type,
itm_sq int2 not null default 10,
... )
create index item_itp_sq on seeplai.item( itp_id, itm_sq );
使用item 记录作为基础,我希望找到具有相同itp_id 并且具有更少itm_sq 的最大itp_sq。现在使用两个子查询,在语法和逻辑上都是正确的,但是感觉不对。
select max(itm_sq)
into v_prev_sq
from seeplai.item itm
where itm.itp_id = (select itp_id from seeplai.item where itm_id=p_itm_id)
and itm.itm_sq < (select itm_sq from seeplai.item where itm_id=p_itm_id);
我知道我使用了更好的方法,但是它的语法已经融入了我的脑海中
【问题讨论】:
-
itm_tp不在您的定义中? -
itm_tp=>itp_id- 已修复
标签: sql postgresql subquery