select * from a,b where a.id=b.idselect * from a right join b on a.id=b.id这两个语句本质上有什么差别啊??

解决方案 »

  1.   

    第一条语句只会返回满足条件a.id=b.id的行。
    第二条语句会返回b表中所有的行,a表中没有相对应的行用null表示。
    lz可以自己试一下。
      

  2.   

    select * from a,b where a.id=b.id
    mysql 中等同于select * from a inner join b on a.id=b.id

    select * from a right join b on a.id=b.id的判别显而易见了。
      

  3.   

    A left join(左连接)包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录。 
    同理,也存在着相同道理的 right join(右连接),即包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录。 
    而full join(全连接)顾名思义,左右表中所有记录都会选出来。