2013-05-13 61 views
1

我有這樣的表,需要幫助在兩列之一中查找帶有參數的行?

Friends: 

My_E_Mail (VARCHAR) Friends_E_Mail(VARCHAR) 
[email protected] [email protected] 
[email protected] [email protected] 
[email protected] [email protected] 

我需要做的是選擇My_E_MailFriend_E_Mail不匹配,我插上使用參數? 例如:

select Friend_E_Mail 
From Friends 
WHERE Friend_E_Mail NOT IN(?) 

我的問題是如何選擇一個或另一個列取決於參數,如果你插上

比方說,我在[email protected]插上應該的嘛Alester是因爲Carl與arge不是Greg和Jude的朋友。

每當我發表自己的聲明時,我都會向它展示所有Alesters朋友 ,但是當我插入卡爾時,我還看到裘德和格雷格甚至認爲他們不是朋友。 另外我「不能」創建花葯表。

任何幫助,將不勝感激。

+1

我們可以看到,從單獨的標籤有一個SQL問題。標題應該給出一些背景。也許你可以編輯你的標題更有意義。 – Andomar 2013-05-13 14:51:24

+0

ii應該改變什麼? – 2013-05-13 14:58:07

+0

就像「在兩列之一中查找帶有參數的行?」 ? – Andomar 2013-05-13 15:00:07

回答

2

也許這個代碼將有助於你

select Friend_E_Mail 
From Friends 
WHERE '[email protected]' NOT IN(Friend_E_Mail, My_E_Mail) 
+0

沒有幫助,如果你可以讀取 – 2013-05-13 17:42:11

+0

@JamesPutin我再次閱讀它。如果您想選擇「Friends_E_Mail」,您將不會看到「alester @ pam.com」,因爲alester在「My_E_Mail」列中。你同意嗎? – Parado 2013-05-13 19:20:20

0

嘗試

DELCARE @email VARCHAR(50) = ? 
WITH FRIENDS_CTE (My_E_Mail, Friend_E_Mail) 
AS 
(
    SELECT My_E_Mail, Friends_E_Mail 
    FROM FRIENDS 
    WHERE My_E_Mail = @email 
    UNION 
    SELECT Friends_E_Mail, My_E_Mail 
    FROM FRIENDS 
    WHERE Friends_E_Mail = @email 
) 
SELECT Friend_E_Mail 
FROM FRIENDS_CTE 
WHERE My_E_Mail = @email 
相關問題