select e.name,d.depn from emp e ,dept d where e.id=d.id他和
select e.name,d.depn from emp e join dept d on e.id=d.id有什么区别呢
什么时候两个表间要用join连接符 什么时候不用加呢????

解决方案 »

  1.   

    参考书上没有第一种写法啊 等价与 join还是left outer join 还是 full join???
      

  2.   

    举个简单的例子
    --俩表tb1,tb2  
    with tb1 as
    (
        select 1 c1,'a' c2 from dual
        union all
        select 2 c1,'b' c2 from dual
    ),
    tb2 as
    (
        select 1 c1,'aa' c2 from dual
        union all
        select 3 c1,'bb' c2 from dual
    )--第一种
    select a.c2,b.c2
    from tb1 a,tb2 b
    where a.c1 = b.c1
        
         c2    c2
    -------------------
         a     aa--第二种
    select a.c2,b.c2
    from tb1 a left join tb2 b on a.c1 = b.c1     c2    c2
    -------------------
         a     aa
         b     
    第一组 如果俩表不存在对应关系的id 那么查询数据为空 第二组 即使俩表不存在对应关系 至少表tb1的所有数据都会显示
    结论:第二组查询出的数据不会比第一组少