有三个表t1、t2、t3,它们均只有一个int类型的列ID,t1的记录为(1),t2的记录为(1,1,2),t3的记录为(1,1,1,2,2)。分别写出下面两个语句执行的结果:   
SELECT   a.id,b.id,c.id   
FROM   t1             LEFT   JOIN   t2   ON   t1.id=t2.id             LEFT   JOIN   t3   ON   t3.id=t2.id SELECT   t1.id,t2.id,t3.id FROM   t1             LEFT   JOIN   t2   ON   t1.id=t2.id             LEFT   JOIN   t3   ON   t3.id=t2.id   
  
  
SELECT   a.id,b.id,c.id   
FROM   t1             LEFT   JOIN   t2   ON   t1.id=t2.id             RIGHT   JOIN   t3   ON   t3.id=t2.id SELECT   t1.id,t2.id,t3.id FROM   t1             LEFT   JOIN   t2   ON   t1.id=t2.id             RIGHT   JOIN   t3   ON   t3.id=t2.id 

解决方案 »

  1.   

    前面两个相同

    后面两个相同------ t3.id=t2.id /t3.id=t2.id 除了放的位置不相同,不会影响结果..
      

  2.   

    这题考的就是你对INNER JOIN 和LEFT/RIGHT JOIN的理解是否深刻~
      

  3.   

     a.id,b.id,c.id   
    --第一个没有指定别名,会报错
    t1.id,t2.id,t3.id   --------
    第三个同理,没有指定别名,会报错
    a.id,b.id,c.id   
    前两个连接方式,首先以第一个表t1为基础-------
    后两连是t1为基础连接t2,最后以t3为基础 连接t1,t2的结果集