Access中的Inner join left join right join 嵌套连接查询语法

visibility 804 access_time 9 years ago language中文

和SQLServer 的不一样,注意其中的括号

SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;

否则会造成诸如下面的错误:内联三个表

语法错误 (操作符丢失) 在查询表达式 'ur.UserID=u.UserID inner join [DT_Role] r on r.RoleID=ur.RoleID' 中。 在 .....

比如这里的语句:

Select r.RoleName from [User] u inner join [UserInRoles] ur on u.UserID=ur.UserID inner join [Role] r on ur.RoleID=r.RoleID where u.UserName= ? and ApplicationID is null

这里在SQL Server中是不会出错的,但是在Acceess中则会出错,应该改为

Select r.RoleName from [User] u inner join ([UserInRoles] ur inner join [Role] r on ur.RoleID=r.RoleID)on u.UserID=ur.UserID where u.UserName= ? and ApplicationID is null

参考 http://office.microsoft.com/zh-cn/access/HA012314872052.aspx

info Last modified by Raymond 9 years ago copyright This page is subject to Site terms.

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts

timeline Stats
Page index 0.18
More from Kontext
.NET Standard for C# 9.0
visibility 2,939
thumb_up 0
access_time 2 years ago
SQLite in .NET Core with Entity Framework Core
visibility 55,298
thumb_up 3
access_time 2 years ago