gpt4 book ai didi

mysql - SELECT WHERE condition=met and condition=not-met, 但有相关行condition=met (JOIN?UNION?Subquery?)

转载 作者:行者123 更新时间:2023-12-01 00:18:41 25 4
gpt4 key购买 nike

我需要得到一个结果集,其中包含满足特定条件的行,但也包括不满足主要条件但链接到满足这些条件的行的行。我知道这听起来可能很复杂和不清楚,所以我将这个任务转化为一个简单的例子。

+--------------------------------+
| people |
+--------------------------------+
| ID | Name | IsRich | ParentID |
+--------------------------------+
| 100 | John | 1 | NULL |
| 101 | Tom | 0 | NULL |
| 102 | Kate | 0 | 101 |
| 103 | Bob | 0 | 100 |
| 104 | Mike | 1 | 105 |
| 105 | Bill | 0 | NULL |
+--------------------------------+

在这个例子中,我想选择所有有钱的人和不富有但有一个有钱 child 的人:

+---------------------+
| Desired result set |
+---------------------+
| ID | Name | IsRich |
+---------------------+
| 100 | John | 1 | -> because he is rich
| 104 | Mike | 1 | -> because he is rich
| 105 | Bill | 0 | -> because Mike is his child, and Mike is rich
+---------------------+

可以使用什么 SQL 来获取此结果集?

子查询、UNION、JOIN、某种形式的 WHERE 条件,还是其他?

此外,如果可以的话,请帮我改写问题标题......

最佳答案

做选择应该让你想到哪里。这是一种典型的表达方式:

select t.*
from t
where t.isRich = 1 or
t.Id in (select t2.ParentId from t t2 where t2.isRich = 1)

关于mysql - SELECT WHERE condition=met and condition=not-met, 但有相关行condition=met (JOIN?UNION?Subquery?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com