选择一个表中不包含另一表中数据的所有记录

问题描述 投票:0回答:1

我有租户桌子

身份证 姓名
1 租户1
2 租户2
3 租户3

以及定价等级表

身份证 姓名 租户ID
1 一级定价 1
2 一级定价 1

我需要创建 SQL 脚本来获取所有没有定价层的租户

例如本例中必须是租户 2 和租户 3

我试着像这样得到它

SELECT Id 
FROM AbpTenants 
WHERE NOT EXISTS(SELECT TenantId 
                 FROM PricingTier 
                 WHERE TenantId = AbpTenants.Id)

但它什么也没返回

我需要如何编写脚本才能获取正确的数据?

sql sql-server
1个回答
0
投票
SELECT T.ID,T.NAME 
FROM TENANTS AS T
LEFT JOIN PRICING_TIERS AS PT ON T.ID=PT.TenantId
WHERE PT.TenantId IS NULL

SELECT T.ID,T.NAME 
FROM TENANTS AS T
WHERE NOT EXISTS (SELECT 1 FROM PRICING_TIERS AS PT WHERE T.ID=PT.TenantId)
© www.soinside.com 2019 - 2024. All rights reserved.