gpt4 book ai didi

Mysql:从一张表中选择数据,其中table2中的值必须全部为0

转载 作者:行者123 更新时间:2023-11-29 20:51:41 25 4
gpt4 key购买 nike

我希望能够从 t1 中选择所有内容,其中 t1.active = 1,其中 ID 也存在于 t2 中t2.active = 0

但是,如果 t2 中匹配的条目有 1 个条目,则我不想在 t1 中显示 ID 的任何条目t2.active = 1

示例:

Table 1
-----------
t1id|Active|
1 | 1 |
2 | 1 |



Table 2
-----------
t2id|Active|
1 | 0 |
1 | 0 |
1 | 1 |
2 | 0 |
2 | 0 |

应给出以下结果:

t1id|Active| 
2 | 1 |

我已经尝试过:

SELECT * FROM t1 WHERE t1.active = 1  
AND EXISTS(SELECT * FROM t2 WHERE t2.id = t1.id
AND t2.active = 0
GROUP BY t2.id, t2.active HAVING COUNT(t2.id) > 1 AND t2.active = 0)

不幸的是,这仍然从 t1 返回条目,其中 id 存在于 t2 中,并且有一个条目 active = 1

如有任何帮助,我们将不胜感激!

最佳答案

我看到两种解决方案。

1 短,使用最大值

SELECT * 
FROM t1
WHERE
t1.active = 1 AND
EXISTS(SELECT null
FROM t2 WHERE t2.id = t1.id
GROUP BY t2.id
--if the max active = 0 then it means there's no t2.active = 1
HAVING MAX(t2.active) =0)

代码不太优雅,但可能更清楚地解释您想要实现的目标

SELECT * FROM t1 
WHERE
t1.active = 1 AND
EXISTS ( SELECT null FROM t2
WHERE t2.id = t1.id
AND t2.active = 0) AND
NOT EXISTS (SELECT null FROM t2
WHERE t2.id = t1.id
AND t2.active = 1)

关于Mysql:从一张表中选择数据,其中table2中的值必须全部为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37988968/

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