我有这张桌子,需要帮助
Friends:
My_E_Mail (VARCHAR) Friends_E_Mail(VARCHAR)
alester@pam.com carl@pam.com
alester@pam.com greg@pam.com
alester@pam.com jude@pam.com
我需要做的是选择与我插入的参数不匹配的My_E_Mail
或Friend_E_Mail
?
例如:
select Friend_E_Mail
From Friends
WHERE Friend_E_Mail NOT IN(?)
我的问题是如果插入,如何根据该参数选择一个或另一个列。
让我说我插入carl@pam.com唯一应该出现的是Alester,因为卡尔是只有alester而不是Greg和Jude的朋友。
每当我自己发表声明时,我都会向所有Alesters朋友展示 但当我插入卡尔时,我也看到裘德和格雷格甚至认为他们不是朋友。 我也“不能”创建花药表。
任何帮助都将不胜感激。
答案 0 :(得分:2)
也许这段代码可以帮到你
select Friend_E_Mail
From Friends
WHERE 'carl@pam.com' NOT IN(Friend_E_Mail, My_E_Mail)
答案 1 :(得分: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