oracle从一张表中根据不同条件查询出两个结果 然后查出两个结果中相同的数据

这是表中数据
图片说明
我用下面这种方法
select * from ((select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id=1) o),
((select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id=8) t)
where o.platename=t.platename ;
查出来的结果对的 却在一行
图片说明
怎么解决。。

2个回答

select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id IN (1,8)

--这样用,条件用in

sanhuv
sanhuv 回复中国风: 第二种可以,
大约 4 年之前 回复
roy_88
中国风 回复sanhuv: select platename from SFFX_JGJPZ_DETAIL d where d.jgjpz_id IN (1,8) GROUP BY platename HAVING COUNT(DISTINCT platename)=2 SELECT platename FROM SFFX_JGJPZ_DETAILf AS a WHERE jgjpz_id=1 AND EXISTS(SELECT 1 FROM SFFX_JGJPZ_DETAIL WHERE platename=a.platename AND jgjpz_id=8) 用以上2种方法看看是不是这样的效果
大约 4 年之前 回复
sanhuv
sanhuv 我还要查1 和 8中platename相同的数据 不是只查出所有数据
大约 4 年之前 回复

select * from (select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id=1 and d.platename IN(select platename from SFFX_JGJPZ_DETAIL A where A.jgjpz_id=8)) t UNION
select * from (select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id=8 and d.platename IN(select platename from SFFX_JGJPZ_DETAIL A where A.jgjpz_id=1)) b

sanhuv
sanhuv select * from SFFX_JGJPZ_DETAIL d where d.platename in ( select d.platename from (select * from SFFX_JGJPZ_DETAIL d where d.jgjpz_id in (1,8)) d having count(d.platename)>1 group by d.platename);
大约 4 年之前 回复
sanhuv
sanhuv 厉害 我也做出来了 不过方法不一样
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问