Sql 根据Oracle记录的另一个表编号从表中选择
我有一个独特的要求,即只有在第二个表至少有一条带有特定标志的记录时,才能基于另一个表从一个表中选择记录。查询不应返回相同ID的两条记录:例如: 表1 此表中的id是唯一的: 表二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 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);