Mailinglisten-Archive |
Jens Vonderheide wrote: > Hallo, > > ich habe eine Tabelle mit einer ID, die für mehrere Einträge gleich ist > sowie einem Start- und Endedatum, etwa so: > > CREATE TABLE spans ( > id_common int unsigned not null, > start date not null, > end date not null > ) > > Jetzt suche ich für alle existierenden Werte von id_common die Intervalle, > für die es keinen Eintrag gibt. > An dieser Query verzweifel ich jetzt schon einige Tage, hat jemand eine > Idee? > > Danke, > Jens Hallo Jens, ich würde eine Lösung mittels eines Arrays vorschlagen: select * from spans; for (jede id_common) { $zeiger = $start; while ($zeiger!=$end) { $array[$zeiger] = true; *) setze_zeiger_weiter; }; }; [ *) Hier vielleicht sogar die id_common's speichern, damit Du bei Bedarf auch gucken kannst, in welchen id's ein bestimmtes Datum vorkommt. ] Danach kannst Du gucken, welche Daten des Arrays nicht true sind (bzw. keinen Eintrag haben) ... da hast Du Deine Daten, die nirgendwo vorkommen. Aufeinanderfolgende leere Array-Einträge kann man dann bestimmt auch noch irgendwie Intervallweise ausgeben. Gruß, Torsten
php::bar PHP Wiki - Listenarchive