假设说三个表外连接select * from A left join B on A.x=b.x  left join C on...........A和B外连接我懂   再挂C表的时候   是A和B的虚拟合表 挂C  还是B表在挂C(因为C是写在B的后面的) on链接条件怎么写 
写成A.xx=C.xx 就是A C外连?  
写成B.xx=C.xx 就是B C外连?  有些糊涂呢 

解决方案 »

  1.   

    A和B 生成的虚拟表后 再挂C
      

  2.   


    --写成A.xx=C.xx 就是A C外连,沒錯! 
    --写成B.xx=C.xx 應該是A及B同時與C外连--也許用下面的測試結果你會更清楚:
    CREATE TABLE #t1 (a1 CHAR(1))
    INSERT #t1 SELECT 'A'
    INSERT #t1 SELECT 'B'CREATE TABLE #t2 (a1 CHAR(1))
    INSERT #t2 SELECT 'A' UNION ALL SELECT 'C'CREATE TABLE #t3 (a1 CHAR(1))
    INSERT #t3 SELECT 'A' UNION ALL SELECT 'B' UNION ALL SELECT 'C'SELECT a.a1 a_a1,b.a1 b_a1,c.a1 c_a1
    FROM #t1 a
    LEFT JOIN #t2 b ON a.a1=b.a1
    LEFT JOIN #t3 c ON a.a1=c.a1SELECT a.a1 a_a1,b.a1 b_a1,c.a1 c_a1
    FROM #t1 a
    LEFT JOIN #t2 b ON a.a1=b.a1
    LEFT JOIN #t3 c ON b.a1=c.a1