0

我有这个:

SELECT TOP 100 
    IDNum, 
    IDName, 
    Nation, 
    (SELECT 
        SUM(Loyalty) 
    FROM 
        USERDATA 
    WHERE 
        USERDATA.Knights = KNIGHTS.IDNum 
        AND USERDATA.Authority IN(1, 2)
    ) as ClanLoyalty 
FROM 
    KNIGHTS 
ORDER BY 
    ClanLoyalty DESC

但我想排除Knights (21 and 25)所以骑士IDNum21 和 25 不会包含在该查询中?

如何排除它们?

4

1 回答 1

0

这不是外部查询中的简单 where 子句吗?

SELECT TOP 100 
    IDNum, 
    IDName, 
    Nation, 
    (SELECT 
        SUM(Loyalty) 
    FROM 
        USERDATA 
    WHERE 
        USERDATA.Knights = KNIGHTS.IDNum 
        AND USERDATA.Authority IN(1, 2)
    ) as ClanLoyalty 
FROM 
    KNIGHTS 
where
    knights.idnum not in (21,22)
ORDER BY 
    ClanLoyalty DESC

如果您从主查询中排除它,它们也不会在内部查询中匹配,因为无论如何您都让它们加入 IDNum 字段。

关于这一点,您可能还想阅读我整理的这个问答,其中涵盖了很多这样的 SQL。

于 2013-09-26T23:31:41.620 回答