【发布时间】:2018-08-29 17:05:38
【问题描述】:
以下是 SQL Server 中的两个表:TABLE_A 和 TABLE_B
我需要得到如下输出:
-
从 Exist = 0 的 TABLE_A 中获取 ID
我们会得到 100、101 和 102
-
现在,在 100、101 和 102 中,具有相同 ID 值的其他行(在同一个表中)不应该有 Exist = 1
因此,无法选择 100,因为它在第二行中有 Exist = 1。
所以,只剩下 101 和 102 个
-
使用剩余的 ID 值(101 和 102),检查 TABLE_B 中的 ID 列,其中任何行中的“Exist”列值不应等于“1”
在 TABLE_B 中,第 4 行的 Exist = 1 表示 102。因此,无法选择
我们现在只有 101 个。这是必需的输出,应该选择。
您能告诉我如何编写最简单的查询来实现这一点吗?如果问题需要改进,请告诉我。
【问题讨论】:
-
你能不能展示一下你到目前为止所做的尝试。你有没有尝试过什么?列数据类型有哪些?
-
ID 是 int 而 Exist 是 bit
-
我试过但坚持检查同一个表中存在 Exist=1 的其他行
标签: sql sql-server