У меня есть база данных, которая выглядит следующим образом:
контакты
id | name
1 | bob
2 | jack
3 | jill
contactsGroupLink
cId| gId
1 | 1
2 | 3
2 | 3
2 | 5
3 | 4
Так в основном,
контакт связан с группой записью в таблице contactsGroupLink.
Контакт может быть в нескольких группах, но контакт может быть в группе только один раз.
Я хочу написать запрос
select `name`
from contacts
where contact.id not in (select contactId
from contactsGroupLink
where groupId = 5);
Который работает.
Возвращает bob
и jill
.
однако он не очень оптимизирован, поскольку имеет зависимый подзапрос. кто-нибудь может помочь оптимизировать его?