Ermittelt die Anzahl der Fremdschlüssel aus mehreren Tabellen

Ich habe 3 Tabellen, wobei Tabelle B & C über Fremdschlüssel auf Tabelle A verweist. Ich möchte eine Abfrage in PostgreSQL schreiben, um alle IDs von A und auch deren Gesamtvorkommen von B & C zu erhalten.

   a      |     b      |     c
-----------------------------------    
id | txt  |  id | a_id |  id | a_id  
---+----  |  ---+----- |  ---+------ 
1  |  a   |  1  |  1   |  1  |  3    
2  |  b   |  2  |  1   |  2  |  4    
3  |  c   |  3  |  3   |  3  |  4    
4  |  d   |  4  |  4   |  4  |  4    

Gewünschte Ausgabe (nur die ID von A & Gesamtanzahl in B & C):

id | Count
---+-------  
1  |  2      -- twice in B
2  |  0      -- occurs nowhere
3  |  2      -- once in B & once in C
4  |  4      -- once in B & thrice in C

SQL bisherSQL-Geige :

SELECT a_id, COUNT(a_id)
FROM
( SELECT a_id FROM b
  UNION ALL 
  SELECT a_id FROM c
) AS union_table
GROUP BY a_id

Die Abfrage, die ich geschrieben habe, ruft B & C ab und zählt die Vorkommen. Wenn der Schlüssel jedoch nicht in B oder C vorkommt, wird er in der Ausgabe nicht angezeigt (z. B. id = 2 in der Ausgabe). Wie starte ich meine Auswahl aus Tabelle A & Join / Union B & C, um die gewünschte Ausgabe zu erhalten?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage