MS Access 多连接查询

Posted

技术标签:

【中文标题】MS Access 多连接查询【英文标题】:MS Access Multi-Join Query 【发布时间】:2013-09-25 10:57:48 【问题描述】:

谁能找到这个 MS Access Query 的问题?当我尝试执行它时,我收到关于在第二个左连接之前缺少运算符的错误

SELECT * FROM (
SELECT  GetitUsageTemp.MemberID, 
    GetitUsageTemp.IDNumber, 

    GetitUsageTemp.Title, 
    GetitUsageTemp.Initials, 
    GetitUsageTemp.Forenames, 
    GetitUsageTemp.Surnames, 
    GetitUsageTemp.CellNumber, 
    GetitUsageTemp.EmailAddress,

    Nz(August.[AugustUsage],0) AS AugustUsage

FROM GetitUsageTemp 
LEFT  JOIN
(SELECT dbo_Requests.fk_Members_ID, Count(dbo_Requests.Log_date) AS JulyUsage
FROM dbo_Requests
WHERE dbo_Requests.Log_date Between #07/01/2013# And #08/01/2013#
GROUP BY dbo_Requests.fk_Members_ID
) Requests
ON GetitUsageTemp.MemberID = Requests.fk_Members_ID

LEFT  JOIN 

(SELECT dbo_Requests.fk_Members_ID, Count(dbo_Requests.Log_date) AS AugustUsage
FROM dbo_Requests
WHERE dbo_Requests.Log_date Between #08/01/2013# And #09/01/2013#
GROUP BY dbo_Requests.fk_Members_ID
) August
ON GetitUsageTemp.MemberID = August.fk_Members_ID
)GETIT

【问题讨论】:

为什么是mysql 标签?您是否使用 Access 作为 MySQL 数据库的前端? 【参考方案1】:

在 Access 中,您只能连接两个表。如果您需要连接更多表,则需要使用括号将第一个连接组合在一起,就好像它是一个新的派生表一样。然后您可以将另一个表加入该组:

select
  *
from
  ( ( Table1 
      LEFT JOIN Table2 ...
    )
    LEFT JOIN Table3 ...
  )
  LEFT JOIN Table4 ...

(我使用笨拙的缩进来尝试使组更清晰)

【讨论】:

非常感谢,你拯救了我的一天

以上是关于MS Access 多连接查询的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 中通过 ODBC 连接 MS SQL 表的查询非常慢

ms-access 查询需要连接编号或计数

左连接 SQL 查询 - MS Access

Ms Access Query:通过查询连接行

MS Access 更新查询和带字符串参数的内部连接

mysql vs ms-access DB上的sql查询左连接