2014-01-27 186 views
-1
select 
    a.ID, a.FirstName, a.LastName, a.PhoneNumber, 
    a.EmailAddress, a.Website, a.isEmailSubscriptionActive 
    from 
    Contacts a, 
    BlockedEmailDomains b 
    where 
    a.ID in (3574,3577,3571,3579,3578) and 
    a.EmailAddress Not like '%'+b.DomainName+'%' 

这是我写的查询。不喜欢没有为我工作...这个代码有什么问题。SQL查询不是不工作

+4

什么是您的数据库? MySQL的? MSSQL?甲骨文?你得到的结果是什么?你会期望什么? –

+0

欢迎使用StackOverflow:如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码样本”按钮(“{}”)以精确地格式化和语法突出它! –

+1

定义“不工作”。什么是正在查询的数据样本以及该样本的结果是什么? – David

回答

0

你应该提到至少你的查询应该做什么。我假设你正在尝试选择域名未被阻止的所有联系人?这是一个存在的查询;您正在寻找在没有阻塞的入口存在所有联系人:

select 
    a.ID, a.FirstName, a.LastName, a.PhoneNumber, 
    a.EmailAddress, a.Website, a.isEmailSubscriptionActive 
from 
    Contacts a 
where 
    a.ID in (3574,3577,3571,3579,3578) 
    and not exists 
    (
    select * 
    from BlockedEmailDomains b 
    where a.EmailAddress like '%'+b.DomainName+'%' 
) 
; 

BTW:是否EmailAddress的域名,并保证具有相同的大写和小写?否则,在比较它们时应该使用lower()或upper()。

+0

感谢Thorsten Kettner,查询工作正常。 – user3226735