查询电子邮件地址的两个表,仅列出一次

Ric*_*ick 1 php mysql sql

我有两个表的'成员资格'和'email_list'.每个包含一个电子邮件地址字段 有些可能在两个表之间重复.我正在尝试制作单个记录列表,但不显示重复项; 每封电子邮件只有一次

思考DISTINCT是我需要去的地方,但不知道如何编写查询,或者我是否需要加入.

任何帮助,将不胜感激!

谢谢,里克

Sal*_*n A 8

一个UNION查询应该做的伎俩:

SELECT email_address FROM memberships
UNION
SELECT email_address FROM email_list
Run Code Online (Sandbox Code Playgroud)

要选择多个列:

SELECT email_address, first_name, last_name FROM memberships
UNION
SELECT email_address, first_name, last_name FROM email_list
Run Code Online (Sandbox Code Playgroud)

上述查询将返回组合的,不同的email-firstname-lastname元组.要消除给定电子邮件地址的重复的第一个和/或最后一个名称,请将结果包装在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
Run Code Online (Sandbox Code Playgroud)

  • 对于没有经验的人,[`UNION`](http://dev.mysql.com/doc/refman/5.5/en/union.html)默认删除重复项.如果你想要重复,你想要'UNION ALL`. (4认同)