Hi,
Zwei Tabellen: eine für Stichwörter im Klartext, eine mit den Vorkommen der Stichwörter in den einzelnen Tagebucheinträgen.
Struktur:
Tabelle STICHWOERTER:
nr (unsigned smallint, primary index, auto_increment) stichwort (varchar(120))
Tablelle STICHWORT_DATUM: nr (unsigned mediumint, primary index, auto_increment) stichwoerter_nr (unsigned smallint) datum (date)
Wenn ich folgende Query eingebe:
SELECT stichwort, datum FROM STICHWOERTER, STICHWORT_DATUM WHERE stichwoerter_nr = STICHWOERTER.NR GROUP BY stichwort ORDER BY stichwort
werden mir zwar alle Stichwoerter in alphabetischer Reheinfolge angezeigt, allerdings nur mit dem jeweils frühesten Vorkommen.
Nein, mit einem zufälligen.
Die meisten Datenbanken verlangen bei Verwendung von Group by, daß die selektierten Werten entweder Spalten, nach denen gruppiert wird, sind, oder aber aggregierte Werte (COUNT, SUM, MIN, MAX, AVG, ...)
MySQL ist da eine Ausnahme (wobei man das m.W. inzwischen auch abschalten kann).
MySQL kennt, IIRC, die Aggregats-Funktion GROUP_CONCAT (oder so ähnlich)
cu,
Andreas a/k/a MudGuard