私は(議論のために)個人、電子メール、属性の3つのテーブルを持っています。個人_個人を電子メールおよび属性にリンクする外部キーを参照します。
特定の個人が属性テーブルに表示される必要はありません。属性が追加されたことがない可能性があり、複数の属性がある場合は複数回表示される可能性があるためです。
個々の参照のリストとそれらの特定の属性の数を取得したいと思います。ただし、個人がメールアドレスを共有することは許可されているため、メールアドレスで検索する必要があります(始めないでください)...
私の最初の刺し傷は
select e.individual_ref, count(a.attr_Code_ref)
from email e left join attribute a on e.individual_Ref = a.individual_ref
where e.email_Address = 'example.email@adomain.net'
and a.attr_code_Ref = 4119
group by e.individual_ref
左結合を使用して、電子メールに個別の参照が存在する場合はそれを取得し、電子メールに個別の参照が存在するが属性にはない場合に結果を取得するようにします。または、これは行を返さないので、私は思ったが...
select e.individual_ref,
(select count(a.attr_Code_ref) from attribute a where a.attr_code_Ref = 4119 and a.individual_ref = e.individual_ref)
from email e
where e.email_Address = 'example.email@adomain.net'
group by e.individual_REf
個人_Refとカウントが0の1行を返します
私の理解よりもSQLが壊れていることを示唆しているわけではないので、「私の混乱は何ですか?」と思います。質問です。