当前位置: 代码迷 >> Oracle管理 >> 神奇的oracle语句,哪位高手能告诉小弟我这是咋回事?
  详细解决方案

神奇的oracle语句,哪位高手能告诉小弟我这是咋回事?

热度:130   发布时间:2016-04-24 04:12:04.0
神奇的oracle语句,谁能告诉我这是怎么回事???
我写了一条语句,如下,报错。原因是因为 blkno字段不存在。
select blkno from prjmst where prjno='H4001'

但是在下面一条语句中居然没有报错。菜鸟想知道原因,求指教。
select * from dpsddp  where blkno in (select blkno from prjmst where prjno='H4001')
------解决思路----------------------
select * from dpsddp  where blkno in (select blkno from prjmst where prjno='H4001')

==>

select * from dpsddp t1  where t1.blkno in (select t1.blkno from prjmst t2 where t1.prjno='H4001')
导致t2只要有数据,t1中的记录就会被全部检索出来
在多表存在连接的情况下,别名很重要
------解决思路----------------------
引用:
select * from dpsddp  where blkno in (select blkno from prjmst where prjno='H4001')

==>

select * from dpsddp t1  where t1.blkno in (select t1.blkno from prjmst t2 where t1.prjno='H4001')
导致t2只要有数据,t1中的记录就会被全部检索出来
在多表存在连接的情况下,别名很重要

实际去试验了下,确实这种情况下会出现问题
  相关解决方案