「メンバーシップ」と「email_list」の 2 つのテーブルがあります。それぞれに電子メール アドレス フィールドが含まれています。一部は両方のテーブル間で重複する場合があります。レコードの単一のリストを作成しようとしていますが、重複を表示しません。各メールは 1 回だけです。
DISTINCT に行く必要があると考えていますが、クエリの書き方や、結合が必要かどうかがわかりません。
どんな助けでも大歓迎です!
ありがとう、リック
UNION
クエリはトリックを行う必要があります。
SELECT email_address FROM memberships
UNION
SELECT email_address FROM email_list
複数の列を選択するには:
SELECT email_address, first_name, last_name FROM memberships
UNION
SELECT email_address, first_name, last_name FROM email_list
上記のクエリは、組み合わされた個別のメール-名-姓のタプルを返します。特定の電子メール アドレスの姓名の重複を排除するには、結果をGROUP BY
句で囲みます。
SELECT * FROM
(
SELECT email_address, first_name, last_name FROM memberships
UNION
SELECT email_address, first_name, last_name FROM email_list
) AS temp
GROUP BY email_address
@Salaman の例をさらに取り上げるには
SELECT email_address FROM memberships
UNION
SELECT email_address FROM email_list
次に、次の行に沿って何かを使用して個別の値を取得できます。
SELECT DISTINCT email_address FROM
(
SELECT email_address FROM memberships
UNION
SELECT email_address FROM email_list
) as combined_emails
リストがそれほど大きくない場合は、これで十分に使いやすくなります。