Mam obecnie taką strukturę tabeli:
tabela vtiger_activity - gdzie są wpisy dotyczące zdarzeń mające m.in. swoje id - vtiger_activity.activityid oraz status - vtiger_activity.eventstatus
tabela vtiger_crmentityrel - gdzie zapisane sa relacje między różnymi typami rekordów, w tym przypadku między ID klientów (crmid) oraz ID zdarzeń (relcrmid), które są przypisane do danych klientów. Pojedynczy klient może mieć przypisanych wiele zdarzeń.
Tutaj bardziej obrazowo:

Ja chciałbym wybrać z tabeli vtiger_activity tylko te rekordy zdarzeń, które są jedynymi przypisanymi do swoich klientów. Przykładowo: klient A ma zdarzenia Z1, Z2, Z3, klient B ma tylko Z4, klient C ma tylko Z5. Czyli ja chcę wybrać tylko Z4, Z5.
Próbowałem wykonać to za pomocą group by i having count(*) = 1, jak poniżej, lecz to nadal zwraca takie zdarzenia, które przypisane są do klientów z kilkoma przypisanymi zdarzeniami. Nie potrafię obmyślić prawidłowej logiki tego zapytania, więc sugestie bardzo mile widziane.
SELECT vtiger_crmentityrel.crmid AS id_klienta, vtiger_crmentityrel.relcrmid AS id_zdarzenia, vtiger_activity.subject, vtiger_activity.eventstatus FROM vtiger_activity JOIN panel.vtiger_crmentityrel ON vtiger_crmentityrel.relcrmid = vtiger_activity.activityid GROUP BY vtiger_crmentityrel.crmid HAVING count(*) = 1