Hallo,
probier's mal mit "Joins".
Geile Idee - die will ich gerade ablösen, weil die Laufzeit zu lang ist. JOINS potenzieren die gefundenen Datensätze, das muss man mit GROUP BY wieder berichtigen.
Vermutlich fehlende Indexe. Ein GROUP BY kann nur dann erforderlich sein, wenn es zu einer ort_id mehrere Einträge in Deiner Ortstabelle gibt. Dann läufst Du mit Deinem Subselect jedoch in die gleiche Falle.
Klar: es gibt jede Menge Orte, die über mehr als eine PLZ verfügen. Wenn diese die gleiche ort_id aufweisen, kannst Du darüber die PLZ sowieso nicht nachschlagen.
Das hier sollte ein typischer Fall für einen einfachen Join sein, der *sehr performant* abgearbeitet werden kann. Befrage EXPLAIN, warum das bei Dir nicht der Fall ist.
Erzähle uns mehr über Dein Tabellendesign und die Inhalte Deiner Tabellen.
Freundliche Grüße
Vinzenz