4
我有三个表:MySQL的加入多个表
t1.estimate, t1.mid, t1.description, t1.status
t2.mid, t2.mname, t2.mphone, t2.memail
t3.estimate, t3.action
我需要加入这些表,但我具有的问题是,T2和T3可以包含任何记录加入到t1。表t1是将应用过滤器的主表。表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
你有没有尝试隔离问题表。也就是说,删除t3 join,group by和group_concat - 然后看看它是否按照预期的那样使用t1和t2,然后在t3上工作。 – SmokeyPHP 2012-07-05 19:12:28