Sql 根据Oracle记录的另一个表编号从表中选择

Sql 根据Oracle记录的另一个表编号从表中选择,sql,oracle,Sql,Oracle,我有一个独特的要求,即只有在第二个表至少有一条带有特定标志的记录时,才能基于另一个表从一个表中选择记录。查询不应返回相同ID的两条记录:例如: 表1 此表中的id是唯一的: 表二 id details1 details2 closureflg 4 somdetails somedetails Y 4 somdetails somedetails Y 6 somdetails somedetails N 7 somdetails somedetails N 7

我有一个独特的要求,即只有在第二个表至少有一条带有特定标志的记录时,才能基于另一个表从一个表中选择记录。查询不应返回相同ID的两条记录:例如: 表1

此表中的id是唯一的: 表二

id  details1   details2    closureflg
4   somdetails somedetails  Y
4   somdetails somedetails  Y
6   somdetails somedetails  N
7   somdetails somedetails  N
7   somdetails somedetail   N
我只需要从第一个表中选择一条记录,只要相应的id在表2中有关闭标志为N的记录:

我试过:

select * from table1 where id in(select id from tbale2 where closureflg = 'N');
这将返回id为7的两条记录

我的预期产出:

id  name    location
6   hisname HisLocation
7   hername herlocation.

请帮忙。

我想加入试试

从表1中选择id、名称和位置 将table2连接到table1.id=table2.id 其中table2.closureflg='N' 请按id分组,试试这个

SELECT * 
FROM table1 t1
WHERE EXISTS(SELECT * FROM table2 t2 WHERE closureflag = 'N' AND t1.ID = t2.ID);

你的查询很有效。。检查这个,它也对我有用。您现在得到的输出是什么?
SELECT * 
FROM table1 t1
WHERE EXISTS(SELECT * FROM table2 t2 WHERE closureflag = 'N' AND t1.ID = t2.ID);