最后取出来的是同时满足这几个条件的记录,and有叫逻辑乘顾名思义,乘法嘛一个为零都为零。不满足条件是逻辑零,所以要所有条件都满足。

解决方案 »

  1.   

    and所有条件都满足
    or 满足一个条件
      

  2.   

    简单可以理解为and相当于交集,or相当于并集即union
      

  3.   

    那你帮我解释一下下面的话
    select a.name ,a.lodging
    from worker a, workerskill b
    where a.name=b.name(+)
    and b.name is null
    and b.skill(+)='aaaa' order by a.name;
      

  4.   

    (+) 表示外连接
    在左边表示右连接
    在右边表示左连接 既LEFT JOIN
      

  5.   

    这我当然知道,我想知道where后的几个条件经过and组合以后会有什么操作。我已经试过,如果没有最后的条件有16条记录,但是加上最后的条件后记录数成了20多条。我想知道为什么!!!!!!!!!!
      

  6.   

    不会罢,你and会增加行,贴出你语句来.
      

  7.   

    select a.name ,a.lodging
    from worker a, workerskill b
    where a.name=b.name(+)
    and b.name is null
    and b.skill(+)='aaaa' order by a.name;
      

  8.   

    and conditions结果集不可能变大吧,我也想知道为什么!我想你应该这样吧,试试:select a.name ,a.lodging
    from worker a, (select * from workerskill where workerskill.skill = 'aaaa')  b
    where a.name = b.name(+)
      and b.name is null
    order by a.name;
      

  9.   

    不是and增加了你的记录数,是(+)增加了记录数
    还有
    and b.skill(+)='aaaa' 有这种写法,
    要和a.name=b.name(+)冲突的.
    -------------
    告诉我,你a表的记录是多少