跨三个表连接独立计算关系。
连接两个表时,我知道如何使用 count 和 group by 子句来计算一个表的 id 作为关系出现在另一个表中的次数,但无法弄清楚如何独立计算两个表的第二个此类关系。
考虑具有以下示例数据的三个表 A、B 和 C
Table A Table B Table C
|id| |id|A_id| |id|A_id|
-- -- ---- -- ----
|1 | |1 |1 | |1 |1 |
|2 | |2 |1 | |2 |3 |
|3 | |3 |3 | |3 |2 |
|4 | |3 |4 | |4 |3 |
在表 B 和 C 中,列 A_id 不能为 NULL,但在表 C 中,列 B_id 可以为 NULL。
我想要一个查询,这样对于表 AI 中的每个条目,将获得表 B 中相关条目的数量以及表 C 中相关条目的数量。对于上述数据,我想要一个返回以下内容的查询:
A_id|Count(B)|Count(C)
---- -------- --------
|1 |2 |1
|2 |0 |1
|3 |1 |2
|4 |1 |0