我在Access数据库中有两个表,Table1和Table2具有完全相同的结构,但Table1有更多数据。我想弄清楚Table2中缺少哪些数据。每个表的主键由文本字段组成:
每个中心可以有许多建筑物,两个不同的中心可以有一个同名的建筑物。在不同的建筑物和不同的中心,房间号和楼层数也可以相同。
我试过了
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进行分析之前,我想看看我是否可以在这里获得任何帮助。
答案 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;