Nachdem ich mir deine Anweisung erstmal ordentlich formatiert hatte, um sie zu verstehen (ich weiss einfach nicht wieso ihr eure Anweisungen hier immer einfach zu hinklascht) und ich die Prefixreihenfolge bei den LEFT-JOINs korrigiert hatte, sehe ich keine Verbesserungsmöglichkeiten.
Da ich meine Mühe jetzt nicht so verpuffen lassen wollte, hier mal eine formatierte
SQL-Anweisung...
SQL-Code:
SELECT bugs.id,
projects.name AS Projekt,
reporter.username AS Reporter,
bearbeiter.username AS "Bearbeitung durch",
bugs.date_submitted AS Meldungsdatum,
bugs.last_updated AS Aktualisiert,
bugs.summary AS Zusammenfassung,
bugs.status,
history.date_modified AS Erledigt,
abrechnung.value AS abrechnung,
CAST(REPLACE(mannstunden.value, ',', '.') AS DECIMAL) AS Aufwand
FROM mantis_bug_table bugs
LEFT JOIN mantis_project_table projects
ON bugs.project_id = projects.id
LEFT JOIN mantis_custom_field_string_table abrechnung
ON abrechnung.field_id = 2
AND bugs.id = abrechnung.bug_id
LEFT JOIN mantis_custom_field_string_table mannstunden
ON mannstunden.field_id = 1
AND bugs.id = mannstunden.bug_id
LEFT JOIN mantis_user_table reporter
ON bugs.reporter_id = reporter.id
LEFT JOIN mantis_user_table bearbeiter
ON bugs.handler_id = bearbeiter.id
LEFT JOIN mantis_bug_history_table history
ON bugs.id = history.bug_id
AND history.field_name = 'status'
AND history.new_value = '80'
AND history.id = (SELECT MAX(id)
FROM mantis_bug_history_table
WHERE bug_id = bugs.id
AND field_name = 'status'
AND new_value = '80')
Gruss
Thorsten