我有2个表如下:
table_a: id, title
table_b: id, table_a_id, status
我想为 table_a 的每个值选择 table_b 中的条目总数,以及 table_b 中不引用 table_a 的条目总数。
例如,假设 table_a 具有以下值:
{id, title}
(1, "Value 1")
(2, "Value 2")
(3, "Value 3")
并且 table_b 具有以下条目
{id, table_a_id, status}
(1, 1, 'open')
(2, 1, 'closed')
(3, -, 'open')
(4, 2, 'closed')
我想要得到的是类似的东西:
("Value 1", 2)
("Value 2", 1)
("Value 3", 0)
(-, 1)
没有空值,我可以这样写:
SELECT table_a.id, table_a.title, count(table_b.id)
FROM table_a
LEFT JOIN table_b ON table_a.id = table_b.table_a_id
GROUP BY table_a.id, table_a.title
但是,这并没有给我 table_b 中不引用 table_a 的那些条目的值。如果我反转连接,那么我可以从 table_b 中获取所有值,但不能从 table_a 中获取。如何在一个查询中同时获得两者?