【发布时间】:2010-10-25 16:10:21
【问题描述】:
普通的sql查询和MS Access 2007的查询有区别吗?
我有这个简单的查询,但它在 MS Access 查询(SQL 视图)中不起作用。这有什么问题?
SELECT StudentSubject.*, Subject.*,Professor.*, Student.*, Church.*
FROM
(
SELECT StudentSubject.*, Subject.*,Professor.* , Student.*
FROM
(
SELECT StudentSubject.*, Subject.*,Professor.*
FROM
StudentSubject
LEFT JOIN Subject ON StudentSubject.SubjectID=Subject.SubjectID
INNER JOIN Professor ON Subject.ProfessorID=Professor.ProfessorID
)
INNER JOIN Student ON StudentSubject.StudentID=Student.StudentID
)
LEFT JOIN Church ON Student.ChurchID=Church.ChurchID;
如果我使用 MySQL/MSSQL,我相信这会起作用(如果我使用别名并直接执行 - 这是 ms access sql 设计器的输出)
我在加入操作时遇到语法错误。但是 MS Access 没有指出是哪个连接。
【问题讨论】:
-
“不工作”是什么意思?
-
是的,MS Access 使用的 TSQL 语法与 SQL Server 略有不同(在某些结构中)
-
@RedFilter 我得到“连接操作的语法错误”,如果你按子字符串搜索,我的帖子上没有“不工作”@Mitch Wheat 你介意把它翻译成 TSQL
-
@geocine:看来您的子字符串匹配算法也“不起作用”……你这个厚脸皮的猴子。
-
在我看来,您需要为派生表子选择设置别名。我看不出你怎么可能引用顶级 SELECT 中不在顶级 FROM 中的表。这是非常非常丑陋的 SQL,我不明白你为什么认为你需要那样做。也就是说,我只是在派生表中看不到任何意义。在我看来,您只不过是在派生表中加入表而已,我不明白为什么您不能一次性完成所有这些操作。
标签: sql mysql sql-server ms-access