3

我无法解决这个问题,你能帮帮我吗?

我有一张桌子dbo.Users--> 在这张桌子上我有一Email列,里面有很多电子邮件

我有另一个表dbo.aspnet_Membership-> 在这个表中我有Email列并且在许多电子邮件中

而且我只想提取Emails不在两列中的内容。

例如:

tab1 col1 :

111@111.com
222@222.com
333@333.com

选项卡 2 列 2:

111@111.com
222@222.com

我会提取(或删除)所有333@333.com电子邮件。

4

4 回答 4

4

由于您使用的是 SQL Server 2008,因此可以EXCEPT像这样使用 set 运算符:

SELECT EMAIL FROM Table1
EXCEPT 
SELECT Email FROM table2

SQL 小提琴演示

更新:这将为您提供Table1第二个表中不存在的所有电子邮件。但是,如果您想获取两个表中未显示的所有电子邮件(感谢@gilly3),请尝试以下操作:

(
  SELECT EMAIL FROM Table1
  EXCEPT 
  SELECT Email FROM table2
)
UNION ALL
(
  SELECT EMAIL FROM Table2
  EXCEPT 
  SELECT Email FROM table1
)

更新的 SQL Fiddle 演示

于 2012-11-09T23:26:28.647 回答
2
SELECT *
FROM dbo.Users u FULL JOIN dbo.aspnet_Membership m ON u.Email = m.Email
WHERE u.Email IS NULL OR m.Email IS NULL

SQL Fiddle演示

于 2012-11-10T20:57:55.250 回答
1
Select *
from dbo.Users
where email not in
(select email
from dbo.aspnet_Membership)
于 2012-11-09T23:23:33.490 回答
0

尝试这个

Select * From Users WHERE email NOT IN
(
  Select email From Users u
  JOIN aspnet_Membership m
     ON u.email = m.email
)



Select * From aspnet_Membership WHERE email NOT IN
(
  Select email From Users u
  JOIN aspnet_Membership m
     ON u.email = m.email
)

您可以将选择语句更改为 DELETE

于 2012-11-09T23:27:32.540 回答