I don’t know quite how to phrase this so please help me with the title as well. 🙂
I have two tables. Let’s call them A
and B
. The B
table has a a_id
foreign key that points at A.id
. Now I would like to write a SELECT
statement that fetches all A
records, with an additional column containing the count of B
records per A
row for each row in the result set.
I’m using Postgresql 9 right now, but I guess this would be a generic SQL question?
EDIT:
In the end I went for trigger-cache solution, where A.b_count
is updated via a function each time B
changes.
Advertisement
Answer
SELECT A.*, (SELECT COUNT(*) FROM B WHERE B.a_id = A.id) AS TOT FROM A