SQL-Code:
Select ..., ..., (select sum(wert) from TableB where TableA_ID = a.ID Group by TableA_ID) as wertgesamt from TableA as a
ist identisch mit
Select ..., ..., datenbankname.Funktion(ID) as wertgesamt from TableA
"Group by TableA_ID" ist meist falsch bzw. unter
MySQL nur überflüssig (weil es erlaubt ist) und verleitet das System ggf dazu, die TableB 100e Mal abzufragen, entsprechend der Anzahl der Mastersätze.
In der Funktion, ist es vielleicht auch so formuliert, hier zwingt der Funktionsaufruf das System zu einem ähnlichen Verhalten.
Formulier die Abfrage um.
Code:
Select a.*, sum(b.wert) from tableA a, tableB
where b.tableA_ID=a.id
Group by a.*
wobei alle a.* durch einzelne Feldnamen zu ersetzen sind (im select und im groub by).
Alternativ natürlich das Statement auch in
ANSI Syntax (..from a join b on ..).
So kommst Du vermutlich mit jeweils einem Scan je Table davon und bist per se schneller.