多対多の関係を持つ 2 つのテーブルがあります。個人は多くのグループに所属できます。グループは多くの個人を持つことができます。
個人は基本的にプライマリキー ID を持っているだけです
グループには、プライマリ キー ID、個人 ID (個人テーブルの ID と同じ)、およびそのグループが個人のプライマリ グループであるかどうかを示すビット フラグがあります。
理論的には、グループ テーブル内の特定の個人の 1 つを除くすべてのエントリは、そのビット フラグを false に設定する必要があります。これは、すべての個人が 1 つのプライマリ グループを持つ必要があるためです。
私の現在のデータセットでは、この仮定が当てはまらないことはわかっています。また、すべてのグループのプライマリ フラグが false に設定されている個人が何人かいます。
それらの個人を返すクエリを生成するのに問題があります。
私が得た最も近いものは次のとおりです。
SELECT * FROM 個人 i LEFT JOIN グループ g ON g.IndividualID = i.ID WHERE g.IsPrimaryGroup = 0
しかし、フィールドは数値ではなくビット フィールドであるため、SUM または MAX を使用してさらに先に進むことはできません。
助言がありますか?