【发布时间】:2020-04-18 05:31:28
【问题描述】:
我正在尝试获取结果,我想检查是否存在两行用于一个公共 ForeignKeyId 并在这两行上添加一个检查。
假设我在下面有一个表格 - 'Test1'
A B C D 'Test2'
1 33 x NULL Result Id
2 33 NULL y Result1 33
3 44 x NULL Result2 44
4 44 NULL z Result3 55
5 55 x NULL
我想从 Test2 表中获取结果,其中 Test1 应该包含两行,其中 C = x 和 D NULL。
所以,选择查询应该返回 Result1 和 Result2,而不是 Result3
我试过了:
select Result
from Test2
inner join Test1 on Test2.Id = Test1.A
where
(select Count(*) from Test1 where C = 'x') = 1 AND
(select Count(*) from Test1 where D IS NOT NULL) = 1;
【问题讨论】:
-
使用SQL Server
-
下面的解决方案可能适用于 SQL Server,但结果通常取决于数据库,因此适当的标记可以节省每个人的时间。下次也应该在dba.stackexchange.com 上询问纯 SQL 和 DB 问题。
标签: sql sql-server