У меня есть 2 таблицы, которые имеют отношение многие ко многим; Индивидуум может принадлежать ко многим группам. Группа может иметь много людей.
Физические лица в основном просто имеют свой идентификатор первичного ключа
Группы имеют идентификатор первичного ключа, IndividualID (такой же, как идентификатор в индивидуальной таблице) и битовый флаг, если эта группа является основной группой для отдельного человека
Теоретически, для всех, кроме одной записи для любого отдельного человека в таблице групп, этот битовый флаг должен иметь значение false, поскольку у каждого человека должна быть ровно 1 первичная группа.
Я знаю, что для моего текущего набора данных это предположение не выполняется, и у меня есть несколько людей, у которых первичный флаг для ВСЕХ их групп установлен в false.
У меня проблемы с генерацией запроса, который вернет мне этих людей.
Самое близкое, что я получил:
ВЫБРАТЬ * ОТ ЛИЧНОГО Я
ЛЕВАЯ РЕГИСТРАЦИЯ Группа g ON g.IndividualID = i.ID
ГДЕ g.IsPrimaryGroup = 0
, но идти дальше, чем с SUM или MAX, не работает, потому что поле является битовым полем, а не числовым.
Есть предложения?