我有两张桌子'会员资格'和'email_list'。每个包含一个电子邮件地址字段有些可能在两个表之间重复。我正在尝试制作单个记录列表,但不显示重复项;每封电子邮件只有一次。
思考DISTINCT是我需要去的地方,但不知道如何编写查询,或者我是否需要加入。
任何帮助将不胜感激!
谢谢, 瑞克
答案 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
如果您的清单不是很大,那么这应该足以让您轻松使用。