1

「メンバーシップ」と「email_list」の 2 つのテーブルがあります。それぞれに電子メール アドレス フィールドが含まれています。一部は両方のテーブル間で重複する場合があります。レコードの単一のリストを作成しようとしていますが、重複を表示しません。各メールは 1 回だけです。

DISTINCT に行く必要があると考えていますが、クエリの書き方や、結合が必要かどうかがわかりません。

どんな助けでも大歓迎です!

ありがとう、リック

4

2 に答える 2

8

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
于 2012-05-18T19:03:29.167 に答える
1

@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

リストがそれほど大きくない場合は、これで十分に使いやすくなります。

于 2012-05-18T19:23:25.307 に答える