Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SQL查询转换为MS Access SQL_Sql_Ms Access - Fatal编程技术网

将SQL查询转换为MS Access SQL

将SQL查询转换为MS Access SQL,sql,ms-access,Sql,Ms Access,只是想让我的SQL查询在MS Access中工作,但它不想。我试图找到一个指南或关于这一点的东西,因为我知道它发生了很多次,通常只是添加一些括号,但尽管我做了很多尝试,我还是无法让这个查询工作: 选择t1。名称为lev1,t2。名称为lev2,t3。名称为lev3,t4。名称为lev4 从文件夹中选择t1 作为t2上的t2左连接文件夹。父项=t1.ObjId 左连接文件夹为t3上的t3。父项=t2.ObjId 左连接文件夹为t4上的t4.Parent=t3.ObjId 其中t1.ObjId='1

只是想让我的SQL查询在MS Access中工作,但它不想。我试图找到一个指南或关于这一点的东西,因为我知道它发生了很多次,通常只是添加一些括号,但尽管我做了很多尝试,我还是无法让这个查询工作:

选择t1。名称为lev1,t2。名称为lev2,t3。名称为lev3,t4。名称为lev4 从文件夹中选择t1 作为t2上的t2左连接文件夹。父项=t1.ObjId 左连接文件夹为t3上的t3。父项=t2.ObjId 左连接文件夹为t4上的t4.Parent=t3.ObjId 其中t1.ObjId='123456789';
MS Access要求在每个联接周围加括号。当您有多表联接时,您将有几个:

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4
FROM ((Folder AS t1
LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId)
LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId)
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789';
格式如下所示:

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4
FROM 
(
    (
        Folder AS t1
        LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId
    )
    LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId
)
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789';

MS Access要求在每个联接周围加括号。当您有多表联接时,您将有几个:

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4
FROM ((Folder AS t1
LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId)
LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId)
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789';
格式如下所示:

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4
FROM 
(
    (
        Folder AS t1
        LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId
    )
    LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId
)
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789';

您得到了什么错误?通常的访问语法错误-没有运算符,然后它在第一行指向t2.Name。不知道你为什么问我这个。您可能已经知道,Access需要很多括号,这就是为什么它是一个语法错误,但我不知道把括号放在哪里。我从未完全理解差异,这就是为什么我要求提供一些关于差异的指导或指示。您得到了什么错误?通常的访问语法错误-无运算符,然后它在第一行向t2.Name指出。不知道你为什么问我这个。您可能已经知道,Access需要很多括号,这就是为什么它是一个语法错误,但我不知道把括号放在哪里。我从来没有完全理解差异,这就是为什么我要求一些关于差异的指导或指示。这确实有效。这总是一样的吗?在FROM子句开始处的所有左括号,然后在每个JOIN/ON语句后关闭一个右括号?@dnLL yes这是语法。在每次连接后的开始和结束处放上圆括号。这确实有效。这总是一样的吗?在FROM子句开始处的所有左括号,然后在每个JOIN/ON语句后关闭一个右括号?@dnLL yes这是语法。在每次连接后的“开始”和“结束”处放置左括号。