2017-08-03 52 views
0

我基本上試圖檢索數據並在滿足3個條件時執行一些步驟。我有一個表,說接觸塔(的ContactID(PrimaryKey的),PERSONID,名字,姓氏,電子郵件) 現在我基本上是試圖找到即員工的ContactID主鍵在滿足多個條件,即其中姓=「ABC」和電子郵件='[email protected]'。現在這個問題主要是因爲這張表可能有重複,員工可能有超過1個電子郵件地址。使用IN條件中的多個條件進行搜索

我喜歡

Select * from contact where firstname IN ('','','',) and lastname IN ('','','') and emailid IN ('','','') 

思維的代碼我測試,但我現在還不能確定基本上我是因爲IN的,我在查詢困惑。在這種情況下代碼是否被順序執行?或者如果你能以其他一些很棒的方法來幫助我。

+0

你談論的3個條件,它們是什麼? –

+0

@IlyaBursov - SELECT * FROM接觸其中姓名IN( '', '', '',)和姓氏IN( '', '', '')和EMAILID IN( '', '', '') –

+0

好的,爲什麼你在每個'in'中有3個空值? –

回答

3

你想要的是類似以下內容:

SELECT * 
FROM contact 
WHERE (firstname = 'fname1' AND lastname = 'lname1' and emailid ='email1') 
    OR (firstname = 'fname2' AND lastname = 'lname2' and emailid ='email2') 
    OR (firstname = 'fname3' AND lastname = 'lname3' and emailid ='email3') 

的IN列表允許許多不同的組合。不幸的是,這不太有用。

另一種辦法是把允許的組合在一個單獨的表,並使用JOIN:

SELECT C.* 
FROM contact C JOIN allowedCombinations A 
ON C.firstname = A.firstname AND C.lastname = A.lastname AND C.emailid = A.emailid 
+0

加入的明智的想法..我會嘗試一下, –