Я пытаюсь построить запрос, который дает мне список отдельных записей после применения ограничения «НЕ МЕЖДУ» для полей даты в другой таблице.
Учитывая следующее ...
User Table:
magicID name
100 Greg
200 Fred
Event Table:
magicID date
100 2011-02-24
100 2011-02-23
100 2011-02-22
200 2011-02-22
Как я могу получить список отдельных пользователей, которые не попадают в определенный диапазон дат? Я хочу, чтобы это было очень явным. Если я ищу пользователей, у которых нет записей о событиях между 2011-02-23 и 2011-02-24, я бы ожидал получить один результат обратно,
200 Fred
Это цель. Но приведенный ниже запрос выдаст мне всех пользователей. Я хочу, чтобы ограничение «НЕ МЕЖДУ» было явным.
SELECT DISTINCT users.* FROM users, events WHERE events.date NOT BETWEEN '2011-02-23' AND '2011-02-24'
Этот запрос возвращает всех пользователей ...
100 Greg
200 Fred
Мне не хватает чего-то очень фундаментального ...