[英]Trouble with parenthesis in MS Access for SQL Inner Joins
在MS Access中尝试了以下SQL,但似乎无法正常运行,有人有更好的主意吗?
SELECT top 4 Student.STUDENT_DEGREE, Student.STUDENT_SEX,STUDENT_GROUP_ID,STUDENT_GROUP_ID2,RESULT_MARK
FROM (((Student)
INNER JOIN Result ON Student.STUDENT_ID=Result.RESULT_STUDENT_ID)
INNER JOIN Group ON RESULT_GROUP_ID = GROUP_ID)
where STUDENT_GROUP_ID <> ''
order by Result.RESULT_MARK desc;
每当我运行这个我只会得到错误:
FROM子句中的语法错误
Group
是保留字 。 将该名称括在方括号中,以避免混淆db引擎。 您还可以为表名分配别名。
FROM
(Student
INNER JOIN Result
ON Student.STUDENT_ID=Result.RESULT_STUDENT_ID)
INNER JOIN [Group] AS g
ON Result.RESULT_GROUP_ID = g.GROUP_ID
我不得不猜测最后一个ON
子句中哪些表包含那些字段。 如果在Access查询设计器的“设计视图”中设置联接,则将帮助您正确命名。 它还将添加数据库引擎对包括多个连接的任何查询所需要的括号。
还可以在表源中SELECT
列表中以及查询中其他位置的字段名称。 再次,查询设计器可以为您提供正确的名称。
删除Student
周围多余的括号:
SELECT top 4 Student.STUDENT_DEGREE,Student.STUDENT_SEX,STUDENT_GROUP_ID,STUDENT_GROUP_ID2,RESULT_MARK
FROM ((Student
INNER JOIN Result ON Student.STUDENT_ID=Result.RESULT_STUDENT_ID)
INNER JOIN Group ON RESULT_GROUP_ID = GROUP_ID)
where STUDENT_GROUP_ID <> ''
order by Result.RESULT_MARK desc;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.