Sql 获取记录不是在本地数据库中,而是在远程数据库中

Sql 获取记录不是在本地数据库中,而是在远程数据库中,sql,ms-access,Sql,Ms Access,正在寻找如何获取主数据库中不存在但远程数据库中存在的所有记录的正确语法 下面的代码从远程数据库获取所有空白记录,但不确定它是否与本地数据库相关 <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="<%$ ConnectionStrings:accessConnectionString %>" SelectCommand="SELECT EnrollmentsTbl.Use

正在寻找如何获取主数据库中不存在但远程数据库中存在的所有记录的正确语法

下面的代码从远程数据库获取所有空白记录,但不确定它是否与本地数据库相关

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="<%$ ConnectionStrings:accessConnectionString %>"      
    SelectCommand="SELECT EnrollmentsTbl.UserName, EnrollmentsTbl.SubmitTime, EnrollmentsTbl.ClassName, 
    EnrollmentsTbl.ClassDate, EnrollmentsTbl.ClassTime, EnrollmentsTbl.Enrolled, EnrollmentsTbl.WaitListed, EnrollmentsTbl.Instructor, 
    EnrollmentsTbl.DateCompleted, EnrollmentsTbl.Completed, EnrollmentsTbl.Walkin 
    FROM [;DATABASE=e:\subsite.mdb].EnrollmentsTbl AS XXX 
    LEFT JOIN EnrollmentsTbl ON XXX.UserName = EnrollmentsTbl.UserName WHERE (EnrollmentsTbl.UserName Is Null)">
</asp:AccessDataSource>

标准方法是使用外部联接并对空值进行筛选,解释如下:

select r.*
from remote_table r
left join local_table l
  on l.id = r.id
where l.id is null

最终的解决方案是:

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="<%$ ConnectionStrings:accessConnectionString %>"      
    SelectCommand="SELECT XXX.UserName, XXX.SubmitTime, XXX.ClassName, 
    XXX.ClassDate, XXX.ClassTime, XXX.Enrolled, XXX.WaitListed, XXX.Instructor, 
    XXX.DateCompleted, XXX.Completed, XXX.Walkin 
    FROM [;DATABASE=e:\subsite.mdb].EnrollmentsTbl AS XXX 
    LEFT JOIN Users ON XXX.UserName = Users.UserName WHERE (Users.UserName Is Null)">
</asp:AccessDataSource>


样本代码的可能重复项没有失败?它只是返回了不正确的记录我还需要WHERE子句吗,因为它是一个左连接?WHERE子句对这项工作至关重要。当连接未命中(意味着没有本地行)时,左侧连接行的所有列都将为空,并且您可以使用该事实过滤掉命中以只留下未命中,这是您想要的。仅获取错误:“没有为一个或多个必需参数提供值”。这可能意味着您有占位符(通常是“?”)在您的查询中,我创建了一个准备好的语句,并且没有为为为占位符生成的参数赋值。原始问题中的代码已更改-我执行了@bohemiam建议,并生成了一个包含所有空行的表。。。似乎是远程数据库记录数,但在GRIDVIEW中均为空