Wenn Du 200 Einträge bei meinem ersten select bekommst, dann ist die Schnittmenge eben 200 Elemente gross.
select distinct .....
Dann siehst du nur die unterschiedlichen Zeilen.
Was ich aber nicht verstehe, ist, das Du die Zeilen mehrfach bekommst. So, wie ich das sehe, kann man dein Beispiel so eindampfen, das Tabellen mit jeweils einer Spalte (cat_id) übrig bleiben. Welche Werte stehen in v,c und r mit cat_id=2?
SQL-Code:
select count (*) from c where c.cID=2
select count (*) from r where r.cID=2
select count (*) from v where v.cID=2
select count (*) from c join r on c.cID = r.cID where c.cID=2
?
Und was ich auch immer noch nicht weiss, ist, *WAS* Du überhaupt angezeigt haben willst?
Ich habe hier mal drei Tabellen erstellt mit (nur die ID-Felder) Inhalten (1,2,3), (2,3) und (2,4). Die selects, die ich Dir geschickt habe, funktionieren (logischerweise).