Hab mit MySQL jetzt nicht so die Erfahrung, aber probiers mal damit:
Code:
SELECT b.id, a.verid, MIN(a.optpreis)
FROM $tab_veranstaltung b LEFT JOIN $tab_veropt a ON a.verid=b.id
WHERE b.id='$ver[id]'
GROUP BY b.id;
Bin mir jedoch mit dem b.id als Gruppierung nicht ganz sicher. Aber damit solltest du, glaub ich, zu jeder Veranstaltung den niedrigsten Preis bekommen.
Was mir jedoch noch nicht ganz klar ist, warum du eine While-Schleife brauchst, um alle Veranstaltungen zu bekommen?