1

我有这张桌子,需要帮助

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_MailFriend_E_Mail不匹配我插入使用的参数?例如:

select Friend_E_Mail
From Friends 
WHERE Friend_E_Mail NOT IN(?)

我的问题是,如果您插入,如何根据该参数选择一列或另一列。

假设我插入 carl@pam.com,唯一应该出现的是 Alester,因为 Carl 只是 alester 而不是 Greg 和 Jude 的朋友。

每次我自己发表声明时,我都会把它展示给 Alesters 的所有朋友,但是当我插入 Carl 时,我还看到 Jude 和 Greg 甚至认为他们不是朋友。我也“不能”创建花药表。

任何帮助,将不胜感激。

4

2 回答 2

2

也许这段代码会帮助你

select Friend_E_Mail
From Friends 
WHERE 'carl@pam.com' NOT IN(Friend_E_Mail, My_E_Mail)
于 2013-05-13T14:55:26.160 回答
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
于 2013-05-13T19:27:32.357 回答