一条sql语句获得子查询中的第二行数据

如何用一条leftjoin语句关联得到子查询中的第二行数据表如下:emply表字段eid,name,sex1,n1,12,n2,1marry表字段mid,matename... 如何用一条left join语句关联得到子查询中的第二行数据
表如下:
emply表
字段eid ,name,sex
1,n1,1
2,n2,1
marry表
字段mid,matename,marry_time,eid
1 , m1 ,1981-10-28,1
2 , m2 ,1988-11-11,1
3 , m3 ,2003-03-11,1
4 , mm1 ,1688-01-01,2
5 , mm2 ,1811-04-11,2
如何显示:雇员名称,雇员的结婚时间排在正数或者倒数第2位的配偶姓名
name ,matename
求高人指点!!
数据库为oracle10g ,name:雇员姓名,sex:性别,matename:配偶姓名,marry_time:结婚日期
我想显示的结果为
name,matename
1 n1 , m2
2 n2 , mm2
展开
 我来答
shinkensj
2010-04-03 · TA获得超过318个赞
知道答主
回答量:100
采纳率:0%
帮助的人:0
展开全部
正数第2位

SELECT
emply.name,
marry.matename
FROM
emply,
marry,
(SELECT
tmp_table2.eid as eid,
MIN(tmp_table2.marry_time) as min_marry_time
FROM
(SELECT
marry.eid as eid,
marry.marry_time as marry_time
FROM
marry,
(SELECT
eid,
MIN(marry_time) as min_marry_time
FROM
marry
GROUP BY eid) tmp_table
WHERE
marry.marry_time > tmp_table.min_marry_time
AND marry.eid = tmp_table.eid) tmp_table2
GROUP BY tmp_table2.eid) tmp_table3
WHERE
emply.eid = marry.eid
AND marry.eid = tmp_table3.eid
AND marry.marry_time = tmp_table3.min_marry_time

如果你理解了,倒数第2位的你自己就可以写了

补充;
1,我写的比较原始,可能有可能有更高级的方法,带你自己发掘了
2,为什么n2 这个人会横跨3个世纪和2个人结婚?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式