MS Access/JET“不支持加入表达式”有啥方法可以修复这个查询吗?
Posted
技术标签:
【中文标题】MS Access/JET“不支持加入表达式”有啥方法可以修复这个查询吗?【英文标题】:MS Access/JET "Join Expression Not Supported" Any Way to Fix This Query?MS Access/JET“不支持加入表达式”有什么方法可以修复这个查询吗? 【发布时间】:2013-05-15 16:34:44 【问题描述】:我的代码(我使用带有 JET 数据库引擎的 MS Access 2000)
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)一些数据 名字 Alester Jude Carl Jones 姓氏 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
上述查询中的所需输出 if("?" 为: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 “?”是我在“?”中传递的查询字符串参数我知道这很好用。
我的问题是:我不断收到此错误“不支持连接表达式”
有没有一种我可以在不使用存储过程或使用多个查询的情况下使用的解决方法查询,因为这需要是一个单一的查询!?
【问题讨论】:
【参考方案1】:这个表达式看起来不对。
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')
然后手动运行查询。
【讨论】:
以上是关于MS Access/JET“不支持加入表达式”有啥方法可以修复这个查询吗?的主要内容,如果未能解决你的问题,请参考以下文章
关闭 Access Jet OledbConnection 的最佳方式