以下は私のメンバーシップ表の例です。電子メールフィールドに複数の値を持ついくつかのレコードがあります。複数のメール値を持つレコードのみを選択します。
ID LASTNAME FIRSTNAME EMAIL
567 Jones Carol [email protected]
567 Jones Carol [email protected]
678 Black Ted [email protected]
908 Roberts Cole [email protected]
908 Roberts Cole [email protected]
908 Roberts Cole [email protected]
結果を希望します:
567 Jones Carol [email protected]
567 Jones Carol [email protected]
908 Roberts Cole [email protected]
908 Roberts Cole [email protected]
908 Roberts Cole [email protected]
Ted Blackが欠落しているのは、メールアドレスのエントリが1つしかないためです。
私のメンバーシップテーブルに4つ以上の列があることを明確にする必要があります。電話や住所などの追加の列があります。また、メンバーは複数の電話番号または住所を持っているため、メンバーには複数のエントリがある場合があります。複数のメールアドレスを持つ個人のみをキャプチャしたい。
これはデータベースのクリーンアップの一部であり、主キーが追加されます。一部の人が同じメールアドレスで複数のエントリを持っている可能性があることをさらに明確にする必要があります。この段階では、同じメールアドレスを持つ複数のエントリをキャプチャするのではなく、異なるメールアドレスを持つ複数のエントリを持つユーザーのみをキャプチャします。
あなたは次のようなことをすることができます:
select distinct x.id, x.lastname, x.firstname, x.email
from t as x
join (
select id
from t
group by id
having count(distinct email) > 1
) as y
on x.id = y.Id
select x.*
from member as x
where x.id IN
(
select id
from member
group by id
having count(distinct email) > 1
)