令人困惑的查询

时间:2012-03-14 11:21:47

标签: sql oracle10g

您好我有3个表xyz abc and pqrxyzabc的结构相同,但是内部查询子句让我感到困惑,为什么有人放表pqr当没有必要时,即使没有与该表进行加入。

Insert into xyz 
select * from abc where exist (select 1 from pqr where abc.pk_id =1234)
  

abc.pk_id是表格xyz的主键

注意:我还没有写这个查询,这是生产中存在的,请回复。

2 个答案:

答案 0 :(得分:4)

同一查询的混淆版本可能会稍微有点混淆:

Insert into xyz 
select * from abc where abc.pk_id = 1234 and exists (select 1 from pqr)

换句话说,当pqr不为空时,从abc为指定的pk_id插入记录。

答案 1 :(得分:0)

在此上下文中不需要pqr表,以下查询应该执行相同的操作:

Insert into xyz 
select * from abc where pk_id =1234