MYSQL如何从两个没有匹配数据的列表中选择数据?

时间:2013-10-02 15:57:06

标签: mysql

我有两个包含以下字段的表:

1)身份证 2)电子邮件

表一和表二具有相同的数据,表二较少。我想创建一个新表,我从两个表中选择没有匹配的电子邮件地址的所有记录。我该怎么做?

2 个答案:

答案 0 :(得分:1)

简单地UNION两个表,没有2行具有相同的数据

例如,如果你必须表

[table X]
    ID  Email       
------  --------
     1  x       
     2  y       
     3  z       
     4  t   

[table Y]
    ID  Email       
------  --------
     1  x       
     6  g       
     2  v       

查询

SELECT ID,Email FROM X UNION SELECT ID,Email FROM Y

SELECT ID,Email FROM (SELECT ID,Email FROM X UNION SELECT ID,Email FROM Y) t

将给出结果

    ID  Email       
------  --------
     1  x       
     2  y       
     3  z       
     4  t       
     6  g       
     2  v       

答案 1 :(得分:0)

考虑table1已加入table2

上的col1

试试这个:::

Select 
col1, col2
from table1
left join table2 on (table1.col1 = table2.col1)
where table1.col2!=table2.col2 and table2.col1 is null

UNION 

Select 
col1, col2
from table2
left join table1 on (table1.col1 = table2.col1)
where table1.col2!=table2.col2 and table1.col1 is null