比较两个结构相同但不是数据的Access表

时间:2014-11-25 14:35:59

标签: sql ms-access ms-access-2010

我在Access数据库中有两个表,Table1和Table2具有完全相同的结构,但Table1有更多数据。我想弄清楚Table2中缺少哪些数据。每个表的主键由文本字段组成:

  • CenterName
  • BuildingName
  • FloorNo
  • RoomNo

每个中心可以有许多建筑物,两个不同的中心可以有一个同名的建筑物。在不同的建筑物和不同的中心,房间号和楼层数也可以相同。

我试过了

SELECT t1.CenterName, t1.BuildingName, t1.FloorNo, t1.RoomNo, t2.CenterName
FROM Table1 as t1 LEFT JOIN Table2 as t2 ON t1.CenterName=t2.CenterName 
WHERE t2.CenterName Is Null;

但上述内容并未返回任何数据,这意味着所有中心都在两个表格中。但它没有告诉我关于表2中可能缺少的其他字段的任何信息。 任何人都可以帮助重新编写我的查询,以便按预期工作吗?

我习惯使用SQL Server数据库,因此在Access中构建查询对我来说有点费时。在我将所有数据传输到SQL Server进行分析之前,我想看看我是否可以在这里获得任何帮助。

1 个答案:

答案 0 :(得分:3)

加入构成主键的所有四个字段。

SELECT
    t1.CenterName,
    t1.BuildingName,
    t1.FloorNo,
    t1.RoomNo,
    t2.CenterName
FROM
    Table1 AS t1
    LEFT JOIN Table2 AS t2
    ON
            t1.CenterName = t2.CenterName 
        AND t1.BuildingName = t2.BuildingName 
        AND t1.FloorNo = t2.FloorNo
        AND t1.RoomNo = t2.RoomNo
WHERE t2.CenterName Is Null;