SELECT DISTINCT * FROM
(SELECT minpreis,d.datum as datumausgabe,d.datumvon,d.datumbis, p.r_id,d.dauer,d.id as datum_id FROM
(SELECT MIN(NULLIF(preis,0)) as minpreis,d_id,r_id FROM Webseite_Reisen_Preis WHERE preistyp = 1 GROUP BY d_id,r_id) as p
LEFT JOIN Webseite_Reisen_Datum as d ON d.id=p.d_id ) as a
INNER JOIN (SELECT wr.*,wk.k_id as kid FROM Webseite_Reisen wr INNER JOIN Webseite_Reisen_Kategorien wk ON wr.id=wk.r_id) as r ON a.r_id=r.id
WHERE 1 = 1 AND ((reisekategorie = :kat0 OR reisekategoriezusatz like :zkat0)) AND (datumvon > CURDATE() OR datumvon IS NULL) AND internetstatus = 1
GROUP BY id, datumvon
ORDER BY ISNULL(a.datumvon), a.datumvon, ISNULL(a.datumbis), a.datumbis ASC