У меня есть два запроса:MySQL - Фильтр на основе результатов другого запроса (отчетливые)
1:
select Firstname, Lastname, ContactID from contacts where account = 'The Beatles';
он возвращает
Firstname | Lastname | ContactID
John Lennon Beatle01
Paul McCartney Beatle02
Ringo Starr Beatle03
The Other1 Beatle04
Мой второй запрос:
select contacts.lastname, contacts.firstname,
activities.contactid, activities.completeddate
from contacts, activities
where activities.contactid=contacts.contactid
AND completeddate >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY
AND completeddate < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY
order by contacts.lastname asc;
Если есть n на прошлой неделе он вернет что-то вроде:
Firstname | LastName | CompletedDate
John Lennon 2013-08-21 13:06
Paul McCartney 2013-08-21 15:04
То, что я действительно хочу запустить, является запросом на исключение. I.E. покажите мне имена пользователей, которые НЕ имели активности на прошлой неделе.
Так запрос 3 возвращает что-то вроде:
Firstname | Lastname | ContactID
Ringo Starr Beatle03
The Other1 Beatle04
Так по существу, мне нужно, чтобы показать всех пользователей в Query1, которые не существуют в запросе два. Я пробовал несколько объединений, innerjoins и т. Д., Но все терпят неудачу.
Может ли кто-нибудь порекомендовать простой способ сделать это?