这两天刚接触oracle  今天学到关于多表查询 select ename,sal,grade from emp,salgrade where sal between losal and hisal
上面这个语句中的where条件是怎么把错误数据过滤的  在逻辑上实在无法理解什么意思。。求大神指导~~

解决方案 »

  1.   

     where sal between losal and hisal相当于,注意是 >= 和 <= :where sal >= losal and sal <= hisal
      

  2.   

    那他本来sal就在lo和hi之间啊 单从逻辑上说这个where不是等于没说?
      

  3.   

    你不妨把 emp,salgrade  这两张表结构列出来; 包括他们的数据 ;还有“错误数据” 的标准是什么 ?我估计 salgrade 就一行数据;
      

  4.   


    就是两个没有等值的表联表查询  不加where就是笛卡儿积的错误
      

  5.   

    下面这张表,没有 grade 这个字段吗?看样子,这个是对工资等级的一个划分,加这个 where 是查出正确的数据;
      

  6.   

    那他本来sal就在lo和hi之间啊 单从逻辑上说这个where不是等于没说?
    什么意思