2010-12-11 31 views

回答

7

理想情況下,你會想使用FULL OUTER JOIN,但它是not supported in MySQL。相反,您可以使用LEFT和RIGHT OUTER JOIN(或另一個與表顛倒的左邊)和UNION ALL結果來模擬它。

SELECT 
    tbl1.id, 
    tbl1.count1, 
    tbl2.count2 
FROM tbl1 
LEFT JOIN tbl2 
ON tbl1.id = tbl2.id 

UNION ALL 

SELECT 
    tbl2.id, 
    tbl1.count1, 
    tbl2.count2 
FROM tbl2 
LEFT JOIN tbl1 
ON tbl1.id = tbl2.id 
WHERE tbl1.id IS NULL 

ORDER BY id 

結果:

 
id count1 count2 
a 7  3  
b 4  NULL 
c NULL 4  
d 2  NULL 
+1

http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/看這裏爲不同的解決方案 – 2010-12-11 20:18:58