有一个称为表1的假想表,用列:MySQL的 - 指望不同的条件不同的领域中一个连接表
- ID
- 条件1
- 条件2
- joinable_key
还有一个Main_Table,其ID与第一个中的joinable_key相对应。
我想以这样一种方式加入他们,我可以根据条件1和条件2分别计算Table1的行数 - 也就是说,我希望能够执行“count(Table1.condition1)作为first_condition,在select查询上计数(Table1.condtion2)作为second_condition“。
查询大概会是这个样子:
SELECT Main_Table.some_column, COUNT(Table1.condition1) AS first_condition, COUNT(Table1.condtion2) AS second_condition
FROM Main_Table
LEFT JOIN Table1 AS T1 on (T1.joinable_key = Main_Table.id AND T1.condition1 = 'something')
LEFT JOIN Table1 AS T2 on (T2.joinable_key = Main_Table.id AND T2.condition2 = 'something else')
GROUP BY (Main_Table.id)
当此执行,但是,这两个计数结果是相等的,并且相互实际上繁殖。 必须将所有结果包含在最终输出中 - 包括那些没有Table1中任何条目的结果 - 也就是说,如果Table1中没有行,并且joinable_key等于Main_Table.id,那么它也需要包含在内。
在任何人建议实际做两个单独的查询并通过PHP处理它之前 - 我知道为什么以及如何完成它,但我的目标是确定这个多重计数是否可以在一个中完成查询。
谢谢
[在一个查询在MySQL计数多行(http://stackoverflow.com/questions/2957269/counting-multiple-rows-in-mysql-in-one-query) – Konerak 2010-11-11 10:57:14