tin*_*han 2 sql t-sql sql-server
我正在尝试查找表1列A中的值不在表2列A中的行
这是查询......
SELECT contactsid
FROM contacts
WHERE (email1 NOT IN (SELECT email
FROM old_contact))
Run Code Online (Sandbox Code Playgroud)
它返回0行,我知道这是不正确的.有许多行contacts.email1不在old_contact.email
我该怎么写这个查询?
我的猜测是old_contract.email接受一个NULL值.
出于这个原因,not exists通常是一个更好的选择:
SELECT contactsid
FROM contacts c
WHERE NOT EXISTS (SELECT 1
FROM old_contract oc
WHERE c.email = oc.email1
) ;
Run Code Online (Sandbox Code Playgroud)
您还可以添加where email1 is not null到子查询中.但是,not exists如果我忘记了这种情况,我发现使用通常更安全.
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |