2012-11-15 93 views
1

我有两个不同的表格,我想得到独一无二的,就好像他们在单个表格的位置一样。表结构是相同的。我试过UNIONUNION DISTINCT,SELECT DISTINCT with a UNION和各种东西。但我仍然得到重复和东西。MySQL从两个不同的表中选择独一无二的?

有反正与其他数据

SELECT DISTINCT email_address, first_name, last_name, 
    street_address, city, postal_code, province, created_date 
FROM entries 
WHERE subscribe='1' 

那得到它从一个表相处的唯一的电子邮件地址。

请注意,如果我只想要电子邮件地址,UNION的作品。但是当我添加其他数据时,它不再做任何事情。

+0

您已经尝试了'JOIN'? –

+0

你可以做DISTINCT加入吗?就像我想从两个表中获得一切。然后删除所有重复的电子邮件。忽略其余数据,并包括where子句。 – Steven

+1

'select distinct ...'应用于整行 - 所有字段,而不仅仅是select语句中的第一个字段。例如你要告诉mysql确保ROW是不同的,而不是email_address字段。 –

回答

1

试试这个

SELECT email_address, first_name, last_name, 
    street_address, city, postal_code, province, created_date 
FROM 
    (SELECT * FROM entries WHERE subscribe='1' 
    UNION 
    SELECT * FROM entries2 WHERE subscribe='1') AS tmp 
GROUP BY email_address 
1
(SELECT /*Fields*/ FROM entries e1) 
    UNION 
    (SELECT /*same Fields*/ FROM entries2 e2) 
    WHERE subscribe=1 
    GROUP BY email_address 
相关问题