2012-04-12 10 views
2

Ich versuche, eine Abfrage mit überlappenden Daten zu machen. Mein Tabel aussehen wie diesesMySql überlappende Daten können es nicht richtig bekommen

Agenda ID DateStart    DateEnd 
------------------------------------------------------- 
1   2012-04-02 08:00:00  2012-04-02 11:30:00 
2   2012-04-02 10:00:00  2012-04-02 13:00:00 
3   2012-04-02 12:00:00  2012-04-02 15:00:00 

Diese Daten sind für die Planung von Aktivitäten. Sie können eine Aktivität nicht planen, wenn sich die Zeit überschneidet. In diesem Fall überlappen sich die Zeiten. Aber er vergleicht es mit dem, was Sie vorher geplant haben. Sag ich geplante ID 1, so kann ich nicht ID 2 planen, aber ich kann ID 3 planen.

Wie kann ich eine Abfrage mit PHP schreiben, um die Elemente zu wählen, die sich überschneiden. Vielen Dank

SELECT 
    agenda.DateStart, 
    agenda.DateEnd, 
    agenda.AgendaID 
FROM 
    AGENDA 
WHERE 
    ???? 
    AND 
    ???? 

Antwort

3
select a.DateStart, a.DateEnd, a.AgendaId, b.DateStart, b.DateEnd, b.AgendaId 
from agenda a, agenda b 
where 
a.AgendaId <> b.AgendaId 
and b.DateStart>= a.DateStart and 
b.DateStart<= a.DateEnd 
+0

danke es funktioniert, ich kann sie jetzt auswählen. – user1329444

0
$query_Orders = "SELECT * FROM AGENDA WHERE fldTime between DateStart and DateENd "; 

Sie mit dem MYSSQL Schlüsselwort BETWEEN überprüfen können.

Verwandte Themen