2010-12-11 58 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