Hallo Kalle,
SELECT
min(concat(ter1.tag, ter1.uhr)) tag_uhr
,ter1.*
,DATE_FORMAT(ter1.tag,'%w') wotag
,ort1.plz ort_plz
,ort1.name ort_name
,ort1.name_zusatz ort_name_zusatz
FROM bia_termine AS ter1
LEFT JOIN (bia_orte AS ort1)
ON (ort1.id = ter1.ort_id)
WHERE ter1.owner_id = 1
AND ter1.intern_kz = 0
#AND ter1.bild_url > ''
GROUP BY ter1.ort_id
typischer Anfängerfehler (ich weiß, dass Du eigentlich keiner bist),
der nur unter MySQL nicht zu einer Fehlermeldung führt.
Es ist nach jeder Spalte, für die keine Aggregatsfunktion verwendet wird,
zu gruppieren, weil ...
ORDER BY tag_uhr
LIMIT 0,8Das Ergebnis liefert mir zwar die kleinsten tag_uhr und jeden Ort nur einmal, aber die Zeile dazu (ter1.*) stimmt nur zufällig.
alle Werte in den anderen Spalten unvorhersagbar sind (wenn die Werte nicht gleich sind) - so steht es auch im Handbuch.
Die Lösung heißt korrelierte Unterabfrage, siehe z.B. dieses Archivposting von mir.
Freundliche Grüße
Vinzenz