Wenn ich das richtig verstehe, würden Sie join verwenden :
select f.*
from folders f join
werte w
on w.folder_id = f.id
where w.number = 2
order by f.approved, str_to_date(werte, '%d.%m.%Y');
Hinweis:Wenn Sie Datumsangaben in Zeichenfolgen speichern möchten, verwenden Sie das ISO-Standardformat YYYY-MM-DD. Wenn Sie dieses Format verwendet haben, wird str_to_date() wäre unnötig, da eine alphabetische Reihenfolge der String-Darstellung korrekt wäre.
Auch, wenn es eventuell keine Übereinstimmung in den werte gibt Tabelle, dann sollten Sie left join verwenden anstelle von inner join . Oben wird davon ausgegangen, dass es eine Übereinstimmung gibt (oder Sie möchten nur Zeilen mit einem Datum).