4

我有三张桌子:

t1.estimate, t1.mid, t1.description, t1.status

t2.mid, t2.mname, t2.mphone, t2.memail

t3.estimate, t3.action

我需要加入这些表,但我遇到的问题是 t2 和 t3 可能不包含要加入到 t1 的记录。表 t1 是将应用过滤器的主表。加入“mid”时,表 t2 将有 99.9% 的时间包含匹配项。但是表 t3 是一个仅存储信息并在用户将其输入表时创建估计值的表。t1 中可以有 40,000 多条记录,但 t3 中只有 5,000 条。

这是我当前的代码,但它只显示所有三个表中的记录。即使在 t2 和 t3 上没有要加入的记录,我也希望从 t1 显示值。

SELECT DISTINCT
    t1.estimate, t1.mid, t2.mname, t1.description,
    t1.status, GROUP_CONCAT(t3.action)
FROM t1
LEFT OUTER JOIN t2 ON t1.mid = t2.mid
LEFT OUTER JOIN t3 ON t1.estimate = t3.estimate
WHERE t1.status LIKE '0%'
GROUP BY t3.estimate
4

1 回答 1

3

如果没有记录加入,您需要更改您GROUP BY的使用t1.estimate而不是NULL。t3.estimatet3.estimate

于 2012-07-05T19:16:55.660 回答