SQL:语法错误(缺少运算符)
Posted
技术标签:
【中文标题】SQL:语法错误(缺少运算符)【英文标题】:SQL: Syntax error (Missing operator) 【发布时间】:2014-06-11 13:45:11 【问题描述】:我一点也不擅长 SQL
我在 MS Access 数据库中有两个表
|ID| Name |Surname|Postion| |EmpID|ManID|
---------------------------- -------------
|1 |Scrooge|McDuck |Manager| |3 |1 |
|2 |Daisy |Duck |Manager| |7 |1 |
|3 |Donald |Duck |Support| |6 |2 |
|4 |Minny |Mouse |Support| |4 |2 |
|5 |Mickey |Mouse |Support| |2 |1 |
|6 |Goofy | |Support| |1 |2 |
|7 |Pluto | |Support| |5 |2 |
|8 |Huey |Duck |Support|
|9 |Dewey |Duck |Support|
|10|Louie |Duck |Support|
我需要编写一条 SQL 语句来产生以下输出
| Name |Surname|Postion|Manager Name|Manager Positon|
------------------------
|Donald |Duck |Support|Scrooge |Manager
|Pluto | |Support|Scrooge |Manager
|Goofy | |Support|Daisy |Manager
|Minny |Mouse |Support|Daisy |Manager
|Daisy |Duck |Support|Scrooge |Manager
|Scrooge|McDuck |Manager|Daisy |Manager
|Mickey |Mouse |Manager|Daisy |Manager
到目前为止,我的代码看起来像这样(我一直在网上查看它是如何完成的以及为什么)
SELECT Employee.Name,Employee.Surname,Employee.Position,Manager.Name as ManagerName
FROM Employee
INNER JOIN Stafflink ON Employee.ID=Stafflink.EmpID
INNER JOIN Employee Manager ON Manager.ID=Stafflink.ManID;
我知道问题已在Sql table output 中得到解答
但它似乎不起作用并产生错误:
语法错误(缺少运算符)
任何帮助将不胜感激。
【问题讨论】:
您的标题说语法错误,但您的问题说“似乎不起作用”。你想完成什么,你面临什么问题? 我正在尝试将输出转换为所示格式,最后一行是给出错误的行。如果我取出,系统会要求我输入经理的姓名,并以正确的格式输出。查询的最后一行是获取经理的名字,这就是我面临的问题。 【参考方案1】:MS Access 对多个 JOIN
s 有一个非典型要求,即它们被包含在嵌套的 ()
组中,例如:
FROM
((t1 INNER JOIN t2 ON t1.id = t2.id)
INNER JOIN t3 ON t2.id = t3.id)
您的FROM
子句应表示为:
SELECT Employee.Name,Employee.Surname,Employee.Position,Manager.Name as ManagerName
FROM ((
Employee
INNER JOIN Stafflink ON Employee.ID=Stafflink.EmpID)
INNER JOIN Employee Manager ON Manager.ID=Stafflink.ManID);
【讨论】:
在阅读问题时,ms-access
我的眼睛显然让我失望了。
@bluefeet 起初我错过了它,当我看到无法描述的错误“Missing operator”时回去扫描它。
非常感谢,这对您很有帮助。如果我没有合适的数据库程序,我会记住 Access 的未来。
@Darkestlyrics 在您方便的时候尽早获得一个合适的 :) 我曾经在 Access GUI 中构建查询以研究它如何布置所有 ()
组,因为它对我来说几乎没有意义。
我目前正在等待看看未来的雇主会使用什么。我在测试中得到了这个,以了解我的理解和研究技能。以上是关于SQL:语法错误(缺少运算符)的主要内容,如果未能解决你的问题,请参考以下文章
查询包含多个 JOIN 时访问 SQL 语法错误(缺少运算符)
odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 查询表达式中的语法错误(缺少运算符)