#mysql #sql
#mysql #sql
Вопрос:
Нужна помощь в sql (запрос mysql), чтобы проверить, что выбранные ‘startdate’ и ‘enddate’ не имеют записей в этом диапазоне.
ниже приведена моя таблица :
---------------------------------------------------------
| id | start | end |activity|
---------------------------------------------------------
| 1 |2011-10-30 13:00:00 |2011-10-30 14:00:00 | study |
| 2 |2011-10-30 15:00:00 |2011-10-30 16:00:00 | tennis |
| 3 |2011-10-30 17:00:00 |2011-10-30 18:00:00 | golf |
| 4 |2011-10-30 18:00:00 |2011-10-30 19:00:00 | gym |
| 5 |2011-10-30 20:00:00 |2011-10-30 21:00:00 | study |
---------------------------------------------------------
я надеюсь, что этот пост будет полезен и для других.Начальный и конечный столбцы относятся к типу данных datetime.В основном запрос, который я пытаюсь выполнить, — это проверить, не конфликтует ли активность.
нужна помощь. заранее благодарю вас.
Ответ №1:
В основном вам нужно посмотреть, находится ли начальная или конечная дата одной записи внутри начальной и конечной дат другой строки. Я сделал это с INNER JOIN
помощью . Вы также можете сделать это с WHERE'
помощью предложения вместо этого.
Select [your fields]
From table t1
Inner join table t2
On t1.id <> t2.id
And (( t1.start > t2.start
And t1.start < t2.end)
Or
(t1.end > t2.start
And t1.end < t2.end))