SELECT [...],sum(a.id) AS ilosc FROM a,ab,b WHERE ab.a_id=a.id AND ab.b_id=b.id
Problem jest taki że oczywiście nie dostaje w wyniku rekordów z 'a' które nie są powiązane z żadnym 'b', a potrzebuje je wyświetlić, wstawiając w to pole 0. Próbowałem czegoś takiego:
SELECT [...], getCount(a.id) FROM a,ab,b WHERE ab.a_id=a.id AND ab.b_id=b.id
gdzie getCount to procedura składowa wykonująca odpowiednie zapytanie, czy nawet bezpośrednio podzapytanie w tym miejscu ale jak można się domyślić ma to tragiczną wydajność. Więc myślałem żeby zrobić UNION tego pierwszego zapytania i :
SELECT [...],'0' AS ilosc FROM a,ab,b WHERE ab.a_id=a.id AND ab.b_id=b.id
Pozostaje jednak podstawowy problem - jak brać pod uwagę rekordy z tego drugiego zapytania tylko pod warunkiem, że nie ma rekordu o tym samym id w pierwszym zapytaniu?
Mam nadzieje, że to co napisałem da się zrozumieć
