phpbar.de logo

Mailinglisten-Archive

[php] MySQL: Luecken in Intervallen finden

[php] MySQL: Luecken in Intervallen finden

Wolfgang Hauck php_(at)_phpcenter.de
Wed, 11 Sep 2002 11:39:49 +0200


>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?

Hi Jens,

Zunächst solltest du für deine Tabelle einen Primärschlüssel erzeugen:

ALTER TABLE `spans` ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
FIRST;

Damit sind deine Datensätze eindeutig gekennzeichnet.

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

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive