1

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

1) 身份证 2) 电子邮件

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

4

2 回答 2

1

考虑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
于 2013-10-02T16:07:41.400 回答
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       
于 2013-10-02T16:31:18.357 回答