शामिल होने की स्थिति:
- उसी कमरे के साथ कोई अन्य ईवेंट ढूंढने का प्रयास करें
- लेकिन आपके पास आपसे अलग आईडी होनी चाहिए
- तारीखों को ओवरलैप करना चाहिए निर्धारित करें कि क्या दो तिथि सीमाएं ओवरलैप होती हैंए>
- आखिरकार बाद में बनाई गई तारीख होनी चाहिए।
यदि आपको कोई अन्य पंक्ति नहीं मिल रही है, तो इसका मतलब है कि आप अकेले हैं क्योंकि या तो ओवरलैप न करें या क्योंकि आप नवीनतम तिथि हैं।
SELECT a.*
FROM "events" a
LEFT JOIN "events" b
ON a.room = b.room
AND a.id <> b.id
AND a."start" <= b."end"
AND a."end" >= b."start"
AND a.created_at < b.created_at
WHERE b.id IS NULL;
आउटपुट
| id | start | end | created_at | room |
|----|----------------------|----------------------|-----------------------------|-------|
| 2 | 2019-01-23T18:30:00Z | 2019-01-23T19:00:00Z | 2019-01-23T01:04:05.861876Z | Room1 |
| 7 | 2019-01-23T20:15:00Z | 2019-01-23T20:45:00Z | 2019-01-20T20:20:20.20202Z | Room1 |
| 9 | 2019-01-23T18:30:00Z | 2019-01-23T19:00:00Z | 2019-01-23T01:04:05.861877Z | Room2 |
| 14 | 2019-01-23T20:15:00Z | 2019-01-23T20:45:00Z | 2019-01-20T20:20:20.20202Z | Room2 |
| 16 | 2019-01-23T20:15:00Z | 2019-01-23T20:45:00Z | 2019-01-20T20:20:20.202021Z | Room3 |