Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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_Ms Access - Fatal编程技术网

Sql MS-Access中的查询格式问题

Sql MS-Access中的查询格式问题,sql,ms-access,Sql,Ms Access,我需要在access数据库中运行以下查询。这些变化需要做什么。 因为它给出了一个语法错误 SELECT t1.col11, t3.col32, t2.col22, t2.col23 FROM t1, t2, t3 WHERE t1.col11 = t3.col31 AND t3.col32 = t2.col21 (+) SELECT t1.col11, t3.col32, t2.col22, t2.col23 FROM t1, t3 left outer join t2 ON

我需要在access数据库中运行以下查询。这些变化需要做什么。 因为它给出了一个语法错误

SELECT t1.col11,  t3.col32,  t2.col22,  t2.col23
FROM t1,  t2,  t3
WHERE t1.col11 = t3.col31
AND t3.col32 = t2.col21 (+)
SELECT t1.col11,  t3.col32,  t2.col22,  t2.col23
FROM t1, t3 left outer join t2 ON t1.col11 = t3.col31
WHERE t1.col11 = t3.col31
我在下面尝试过,但仍然给出了一个语法错误

SELECT t1.col11,  t3.col32,  t2.col22,  t2.col23
FROM t1,  t2,  t3
WHERE t1.col11 = t3.col31
AND t3.col32 = t2.col21 (+)
SELECT t1.col11,  t3.col32,  t2.col22,  t2.col23
FROM t1, t3 left outer join t2 ON t1.col11 = t3.col31
WHERE t1.col11 = t3.col31
谢谢你的帮助

干杯


Shabar

通过将原始SQL粘贴到Access查询窗口,它返回以下内容:

SELECT   t1.col11, t3.col32, t2.col22, t2.col23
FROM     (t1 INNER JOIN
         t3 ON t1.col11 = t3.col31) INNER JOIN
         t2 ON t3.col32 = t2.col21

Access相当擅长这样翻译基本SQL-您只需注意它不理解的命令

您将t3与t2连接,但连接条件是t1,t3?如果您在VBA中运行此命令,请包含代码。否则,您可能无法得到有用的响应。(此时,请还原我删除的VBA标记,认为它不适用。)基本故障排除:尝试简化版本的查询,直到找到一个可以运行的查询。然后再做最后的版本。@HansUp,是的-当然应该知道这一点。修复了我们如何通过复制粘贴直接翻译sql脚本的问题。它不适用于t2之后的meThe(+)符号。col21似乎是旧的Oracle pre ansi外部联接语法,其中(+)位于联接的缺陷侧,因此从t3到t2的联接应该是“左联接”。