在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;
Run Code Online (Sandbox Code Playgroud)
每当我运行这个我只是得到错误:
FROM子句中的语法错误
Group是一个保留字.将该名称括在方括号中以避免混淆数据库引擎.您还可以为表名指定别名.
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
Run Code Online (Sandbox Code Playgroud)
我不得不猜测哪些表包含最后一个ON子句中的那些字段.如果在Access查询设计器的"设计视图"中设置连接,它将帮助您获得正确的名称.它还将添加db引擎对包含多个连接的任何查询所需的括号.
还可以为SELECT列表中的字段名称和查询中的其他位置限定表源.同样,查询设计器可以为您提供正确的名称.