好象不大一样~~ LEFT JOIN :
首先取出 table1 表中所有数据,然后再加上与 table1 , table2 匹配的的数据 ,

解决方案 »

  1.   



    select * from table1 inner JOIN table2 ON table1.id = table2.id
    结果是一样的是
      

  2.   

    唉, 在google上用left join 和inner join查询以下就知道差别了
      

  3.   

    http://www.blogjava.net/chenpengyi/archive/2005/10/17/15747.html
    看了这个之后你就会明白了!
    慢慢看哈!呵呵~~因为只有看了例子才能明白区别!
    我又不能直接复制,抹杀作者的功绩!
      

  4.   

    不一样。一个是inner join 一个是left join
      

  5.   

    inner join 和left join
    基本的sql知识
    在数据完全匹配时,返回的结果是一样的,为全部
    不完全匹配时,inner join返回交集,left join返回所有的t1以及和t1匹配的t2中的内容
    极限情况(t1和t2中不存在id相等的记录)时,inner join返回空集,而left join返回t1
      

  6.   

    select * from table1, table2 where table1.id = table2.id
    select * from table1 LEFT JOIN table2 ON table1.id = table2.id加入现在有两个表customer(记录客户的相关信息),另外一个表customer_re(记录某个客户的备注,因为不是每个客户都需要备注,所以备注没有建立在customer里面)。customer有以下字段:id, name, tel, address
    customer_re有以下字段:id, re
    customer 有以下数据:
    1  a  22668856  北京
    2  b  22265842  上海
    3  c  24567633  天津customer 有以下数据:
    2  有病毒在他的计算机。假如使用select * from customer c, customer_re cr where c.id = cr.id 得到的结果是id  name  tel       address  id  re
    2   b     22265842  上海     2   有病毒在他的计算机。
    假如使用select * from customer c left join customer_re cr on c.id = cr.id 得到的结果是id  name  tel       address  id  re
    1   a     22668856  北京     null null
    2   b     22265842  上海     2   有病毒在他的计算机。
    3   c     24567633  天津     null null看见不同没有?left join 是以左边的表为标准的,就是左边的表所有行都列出后,然后以它的行为标准,加入右边的表没有匹配的行,则数据显示为null。所以假如我们有客户,但是想列出所有的客户的信息和备注,我们就用left join语法。假如我们只想列出有备注的客户资料,那么我们就使用where
      

  7.   

    fankobe() 
    说的真详细,学习