Schon wieder ich,...
Es funktioniert prizipiell schon so:
(Bitte nicht schimpfen wegen den *-chen)
SELECT
customers.*,
umsatz_vorjahr.*
FROM
customers
-- Umsatz aus Vorjahr
LEFT JOIN
(
SELECT u.* FROM turnover u
WHERE
u.id=(SELECT MAX(u2.id) FROM turnover u2
WHERE
u2.jahr='2006'
AND u2.customer_id=u.customer_id)
AND
u.jahr='2006'
) umsatz_vorjahr
ON customers.id = umsatz_vorjahr.customer_id
Aber scheinbar packt das meine DB / Server nicht.
Es sind ca.10.000 Datensätze in customers und ca.30.000 Datensätze in turnover.
Sind solche SubSELCTs so extreme Performance-Killer (mit einer kleinen von Hand aufgesetzten Datenbank mit 10 Einträgen klappt alles!)?
Wer hat Ideen das ganze zu optimieren?
Wäre es sinnvoll aich alle Datensätze (also ohne Subselect) ausspucken zu lassen und anschließen innerhalb der PHP-Schleife die gewünschten Werte raussuchen?
Das kann doch aber nicht sein, dass eine DB mit den "paar" Datensätzen schon schlapp macht?
Ich würde mich freuen, wenn Ihr mir Tipps geben könntet!
Viele Grüße
Fabienne