2014-01-27 123 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