Mailinglisten-Archive |
Hallo Wolfgang, > Zunächst solltest du für deine Tabelle einen Primärschlüssel erzeugen: Klar, der ist auch drin. Ich habe ihn nur weggelassen, um das ganze übersichtlicher zu machen. > Die Intervalle findest du so: > > Select a.id_common,a.end as start, b.start as end > from spans as a > LEFT JOIN spans as b on a.id_common = b.id_common > where a.end < b.start group by a.end Das haut nicht ganz hin: CREATE TABLE spans ( id_common int unsigned not null, start date not null, end date not null ); INSERT INTO spans VALUES (1, '2000-01-01', '2000-07-31'); INSERT INTO spans VALUES (1, '2000-07-31', '2000-09-30'); INSERT INTO spans VALUES (1, '2001-01-01', '2000-12-31'); Deine Query liefert dann +-----------+------------+------------+ | id_common | start | end | +-----------+------------+------------+ | 1 | 2000-07-31 | 2001-01-01 | | 1 | 2000-09-30 | 2001-01-01 | | 1 | 2000-12-31 | 2001-01-01 | +-----------+------------+------------+ 3 rows in set (0.00 sec) Ich bekomme also die Zeiträume zwischen allen Intervallen, nicht nur zwischen benachbarten. Trotzdem danke, vielleicht komme ich mit dem Ansatz selbst weiter :-) Jens
php::bar PHP Wiki - Listenarchive