TSQL(在 MS SQL Server 2000 和 2005 中使用)允许多个 JOIN 子句,一个接一个,不需要逗号或括号。在 Access 中试试这个,它会抛出一个合适的结果:“查询表达式中的语法错误(缺少运算符)......”
根据我在 Google 中收集到的信息,Access SQL 需要括号来对 JOIN 子句进行分组。关于如何完成此操作的大多数建议是使用设计视图或查询向导,并让 Access 找出将括号放在哪里(在标准 SQL 中不需要)。问题是,我太习惯在文本编辑器(记事本、SSMS、VS2005 等等)中执行我的 SQL,以至于设计视图和向导阻碍了我的皮肤爬行。有时,如果有多种可能性,向导会对加入什么做出错误的假设,而且我已经习惯于自己在 TSQL 中做这件事,以至于我宁愿让向导排除在外。
是否没有将 TSQL 转换为 Access SQL 的工具,或者至少有一组关于放置括号的规则?
例子:
SELECT ...
FROM Participant PAR
INNER JOIN Individual IND
ON PAR.APETSID = IND.APETSID
INNER JOIN Ethnicity ETH
ON IND.EthnicityID = ETH.ID
INNER JOIN Education EDU
ON IND.EducationID = EDU.ID
INNER JOIN Marital MAR
ON IND.Marital = MAR.ID
INNER JOIN Participant-Probation PXP
ON PAR.ID = PXP.ParticipantID
INNER JOIN Probation PBN
ON PXP.ProbationID = PBN.ID
INNER JOIN Class-Participant CXP
ON PAR.ID = CXP.ParticipantID
INNER JOIN Class CLS
ON CXP.ClassID = CLS.ID
INNER JOIN Official OFR
ON PAR.ReferringPO = OFR.ID
INNER JOIN Participant-Official PXO
ON PAR.ID = PXO.ParticipantID
INNER JOIN Official OFA
ON PXO.OfficialID = OFA.ID