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

时间:2012-05-18 19:00:32

标签: php mysql sql

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

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

任何帮助将不胜感激!

谢谢, 瑞克

2 个答案:

答案 0 :(得分: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

上述查询将返回组合的,不同的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

答案 1 :(得分: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

如果您的清单不是很大,那么这应该足以让您轻松使用。