所以我试图用相同的ID做多个连接,每个表可能有也可能没有这个ID的条目。为可能为空的结果集的多个表设置JOINS的默认值?
SELECT a.value, b.value, c.value, d.value FROM tbl_a a
JOIN tbl_b b ON a.id=b.id
JOIN tbl_c c ON a.id=c.id
JOIN tbl_d d on a.id=d.id
WHERE a.id=123
显然,这是因为如果失败tbl_a没有没有一个条目,就返回一个空结果和连接失败。
我试过各种各样的左连接,外连接,并不能得到它的工作。我也尝试设置的子句是这样的:WHERE a.id=123 OR b.id=123 OR ...
但也没有工作。
我试过一个丑陋的联盟,但它给出了一个单独的行输出。
SELECT count(*), "a", IFNULL(a.value,0) FROM tbl_a a WHERE a.id=123
UNION
SELECT count(*), "b", IFNULL(b.value,0) FROM tbl_b b WHERE b.id=123
UNION
etc...
任何想法?
我明白了,我是做了左外连接,我应该做的权利外连接,它似乎工作。 – kenhcwoo 2010-12-02 02:35:51