这句话有什么不对吗?
SELECT *
FROM Movies INNER JOIN
Sessions
ON Movies.MovieID=Sessions.MovieID INNER JOIN
Tickets
ON Sessions.SessionID=Tickets.SessionID;
如果我在Access上运行它,我会收到语法错误' Missing Operator'。 还有Access的替代品,我可以从excel电子表格中导入数据吗?
答案 0 :(得分:2)
一般来说,没有。在MS Access中,是的。它喜欢额外的括号,可能是因为数据库开发人员不相信可读性:
SELECT *
FROM (Movies INNER JOIN
Sessions
ON Movies.MovieID = Sessions.MovieID
) INNER JOIN
Tickets
ON Sessions.SessionID = Tickets.SessionID;
答案 1 :(得分:0)
如果你有一个本地SQL实例,你可以启用OPENROWSET,并安装MDAC(如果你有一个64位的pc,我会安装x86和x64)。以下链接指向可帮助您进行设置的文章。此外,请务必使用提升的权限运行管理工作室。
How to enable Ad Hoc Distributed Queries
以下是查询的外观。在我的示例中,我使用Excel 8.0而不是12,因为列名在8的select语句中是可寻址的。
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 8.0;Database=C:\Temp\MyExcelDoc.xlsx;',
'SELECT * FROM [Sheet1$]')
答案 2 :(得分:0)
您可以将Excel电子表格中的数据导出为多种格式。我找到了两个最好的;
在许多情况下,您可以直接从Excell电子表格处理数据。 这实际上取决于你想做什么。
您的SQL查询看起来很好 - 但是使用Access,您需要在括号中执行额外的连接;
SELECT * FROM ((Movies
INNER JOIN Sessions ON Movies.MovieID=Sessions.MovieID)
INNER JOIN Tickets ON Sessions.SessionID=Tickets.SessionID)
;