我有一张桌子,我需要自己加入并找到丢失的物品,但我被卡住了。也许这只是一个经验不足的问题,但我似乎只能用循环来完成我想要的。
基本上该表如下:
packageID Server
1 baseline
2 baseline
3 baseline
1 server1
3 server1
2 server2
3 server2
我希望完成的是找出每台服务器缺少哪些包。我可以在服务器的基础上得到这个,如下所示:
SELECT base.*, ISNULL(dp.server,'server1') as Server
FROM (SELECT DISTINCT packageID FROM DB1
WHERE server = 'baseline') base
LEFT OUTER JOIN
(SELECT packageID, server FROM DB1
WHERE server = 'server1') dp
WHERE dp.server IS NULL
这在单个服务器的基础上为我提供了我想要的东西。
packageID Server
2 server1
我将如何完成获取基线中缺少特定服务器的每个包的列表?