首页 > 解决方案 > 在创建 SQL 时需要帮助

问题描述

我有以下架构的表并包含记录-

id     parent_id    active
1      NULL           Y
2      1              Y
3      1              N
4      NULL           Y
5      4              N
6      NULL           N
7      6              N

我需要为以下用例编写 SQL:

需要找到所有 active 不等于 Y 且 parent_id active 等于 Y 的记录。

上面的示例输出应如下所示:

输出应该是-

id     parent_id    active
3      1              N
5      4              N

标签: sqlsql-server

解决方案


您可以使用自加入来执行此操作,如下所示:

SELECT *
FROM mytab t1 INNER JOIN mytab t2
ON t1.id = t2.parent_id
WHERE t1.active != 'Y'
AND   t2.active = 'Y'

推荐阅读