我正在尝试从不同的数据库查询表,并使用我在数据库中的链接表left join
查询结果。
这是工作部分
SELECT * FROM DbandDetails
IN 'G:\allpathtomyfolder\Db.accdb'
WHERE(DbandDetails.Month = 10);
现在我试图将此查询的结果与我创建的Linked表连接起来,所以我试过了
SELECT * FROM DbandDetails
IN 'G:\allpathtomyfolder\Db.accdb'
WHERE(DbandDetails.Month = 10)
LEFT JOIN Mylinkedtable ON DbandDetails.code = Mylinkedtable.code;
你可能已经猜到了......它不起作用......
答案 0 :(得分:2)
正如我在评论中所说,以下内容应该有效:
SELECT * FROM DbandDetails
IN 'G:\allpathtomyfolder\Db.accdb'
LEFT JOIN Mylinkedtable ON DbandDetails.code = Mylinkedtable.code
WHERE(DbandDetails.Month = 10);
修改强>
不熟悉MS Access语法,我不得不在这里猜测。但你能尝试一下:
SELECT * FROM DbandDetails
LEFT JOIN Mylinkedtable ON DbandDetails.code = Mylinkedtable.code
IN 'G:\allpathtomyfolder\Db.accdb'
WHERE(DbandDetails.Month = 10);
进一步修改
显然,此解决方案无法连接数据库中的表和文件中的表。另一种解决方案可能是:
SELECT *
FROM (
SELECT * FROM DbandDetails
IN 'G:\allpathtomyfolder\Db.accdb'
) DbandDetails
LEFT JOIN Mylinkedtable ON DbandDetails.code = Mylinkedtable.code
WHERE(DbandDetails.Month = 10);
答案 1 :(得分:2)
该模式... FROM DbandDetails IN 'G:\allpathtomyfolder\Db.accdb'
...可用于具有单个数据源的查询。但是,当您尝试包含其他数据源时,它会中断。并且附加数据源是否位于当前数据库或远程数据库中似乎并不重要。
对于像你这样的查询,我发现更容易为表名添加括号数据库路径,如下所示:FROM [G:\allpathtomyfolder\Db.accdb].DbandDetails
我认为你还应该将WHERE
条款重新定位为HoneyBadger suggested ......
SELECT *
FROM
[G:\allpathtomyfolder\Db.accdb].DbandDetails
LEFT JOIN Mylinkedtable
ON DbandDetails.code = Mylinkedtable.code
WHERE DbandDetails.Month = 10;
如果您遇到其他错误,这是我在修改您的时候用作我的指南的测试查询...
SELECT *
FROM
[C:\share\Access\Contacts.accdb].Settings
LEFT JOIN Dual
ON Settings.ID = Dual.id
WHERE Settings.ID=1;