oracle的sql问题子查询返回多条记录问题请教,急
selecta.id,b.id,(selectm.applyIdformMmwherem.userId=c.userId)applyIdfromAa,Bb,Ccwhere...
select a.id,b.id ,(select m.applyId form M m where m.userId = c .userId ) applyId
from A a , B b , C c
where a.id = b.xxid and c.xxid = b.bbid
现在的问题是子查询(select m.applyId form M m where m.userId = c .userId )中的数据不唯一,报错返回多条数据
想根据m的创建时间取第一条数据 , 应该怎么改?
如果在子查询外面再套一个查询 , 查出第一条 , 这句话作为2级子查询又取不到C的别名了 ,请教大家怎么修改 展开
from A a , B b , C c
where a.id = b.xxid and c.xxid = b.bbid
现在的问题是子查询(select m.applyId form M m where m.userId = c .userId )中的数据不唯一,报错返回多条数据
想根据m的创建时间取第一条数据 , 应该怎么改?
如果在子查询外面再套一个查询 , 查出第一条 , 这句话作为2级子查询又取不到C的别名了 ,请教大家怎么修改 展开
2个回答
展开全部
select m.applyId form M m where m.userId = c .userId这里数袭备据不唯一就说明m的userid或者c的userid不是唯一的,首先你要搞清楚这两个表到底是哪个表的userid不唯一。然后你说想根据m的创建时间取第一条数据 意思是m的userid不唯一是吗?然后不唯一的数据你想根据创建时间只取一条是吗?拍锋毁(...我基悉不知道我这么理解对不对)。如果确实是我这么理解,那就应该写成(select m.applyId form M m where m.创建时间 = max(m.创建时间) and m.userId = c .userId )
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询