MS 访问/JET"不支持联接表达式"有什么方法可以修复此查询吗?



我的代码(我使用MS Access 2000与JET数据库引擎)

SELECT Members.First_Name + ' ' + Members.Last_Name AS Member,
       iif(NULL,Friends.My_E_Mail, Friends.Friend_E_Mail) AS E_Mail, 
       Members.First_Name AS Name 
FROM ((Members 
       LEFT OUTER JOIN Friends 
            ON Members.E_Mail = Friends.My_E_Mail 
            AND Friends.Friend_E_Mail = ?) 
       LEFT OUTER JOIN Friends Friends_1 
            ON Members.E_Mail = Friends.Friend_E_Mail 
            AND Friends.My_E_Mail = ?)

我的表成员(所有VARCHAR)一些数据First_Name Alester Jude Carl JonesLast_Name A B C J

FRIENDS(ALL VARCHAR)
My_E_Mail               Alester@lam.com Alester@lam.com  Alester@lam.com
Friend_E_Mail           jude@lam.com    carl@lam.com   jones@lam.com

***注:朋友表允许重复,所以jude可以在my_E_Mail上,但不能添加alester,因为他们已经是朋友了。

期望输出如果("?"在上面的查询是:jones@lam.com)

+--------------+-----------+------------+
|Member        |E_Mail     |  Name      |
+---------------------------------------+
 Alester A   Alester@lam.com  Alester

期望输出如果("?"在上面的查询是:Alester@lam.com)

+--------------+-----------+------------+
|Member        |E_Mail     |  Name      |
+---------------------------------------+
 Jude B        jude@lam.com  Jude
 carl C        carl@lam.com  Carl
 Jones J       jones@lam.com Jones

PS"?"是我在"?"中传递的查询字符串参数,我知道这很好。

我的问题是:我一直得到这个错误"连接表达式不支持"

是否有一个变通的查询,我可以使用不使用存储过程或使用多个查询,因为这需要是一个单一的查询!

这个表达式看起来不对。

iif(NULL,Friends.My_E_Mail, Friends.Friend_E_Mail)

可能意味着

iif(isnull(Friends.My_E_Mail), Friends.Friend_E_Mail, Friends.My_E_Mail)

你可能不会。

认为您的连接条件是好的。你可以用字符串替换"?"来测试它们。

   LEFT OUTER JOIN Friends 
        ON Members.E_Mail = Friends.My_E_Mail 
        AND Friends.Friend_E_Mail = 'jones@lam.com') 
   LEFT OUTER JOIN Friends Friends_1 
        ON Members.E_Mail = Friends.Friend_E_Mail 
        AND Friends.My_E_Mail = 'jones@lam.com')

相关内容

  • 没有找到相关文章

最新更新