如何使用三个表查找不匹配的记录



我一直在努力创建以下查询。我收到了一个包含2k个IDs的电子表格。我需要弄清楚这些ID是否在两个不同的表中有记录。每个ID可以有多个记录,这取决于它们属于哪个组。

示例:

masterIDS(我将数据导入到一个临时表中(、表IDS和表AuditGroup

主IDS

ID
1
2

我相信这应该能实现你想要的,它返回了一个AuditGroup表中不存在的ID和位置表。

-- Create MasterIDs and insert test data
CREATE TABLE #MasterIDs ([ID] INT)
INSERT INTO #MasterIDs VALUES (1)
INSERT INTO #MasterIDs VALUES (2)
-- Create IDs and insert test data
CREATE TABLE #IDs ([ID] INT, [location] INT)
INSERT INTO #IDs VALUES (1, 10)
INSERT INTO #IDs VALUES (2, 12)
-- Create AuditGroup and insert test data
CREATE TABLE #AuditGroup ([name] CHAR(1), [location] INT)
INSERT INTO #AuditGroup VALUES ('X', 10)
INSERT INTO #AuditGroup VALUES ('Y', 10)

SELECT mid.*, id.[location]
FROM #MasterIDs mid
LEFT JOIN #IDs id
ON mid.ID = id.ID
WHERE id.[location] NOT IN (SELECT [location] FROM #AuditGroup)

DROP TABLE #MasterIDs
DROP TABLE #IDs
DROP TABLE #AuditGroup

最新更新