gpt4 book ai didi

mysql - 如何实现有count(id)>没有group by的效果

转载 作者:行者123 更新时间:2023-11-29 05:53:22 25 4
gpt4 key购买 nike

我如何从 table_1 中选择所有 ids 并包含表二同时具有 KRBR 的条目> 状态? group by table_1.id having count(table_1.id) > 1 将只为每个条目包含一个 id,我需要它们。 where in ('KR', 'BR') 会给我 or 。所以我需要有效地拥有的是 table_2 中存在的条目并且有一个用于 KR 和 BR 的条目

table_1

id |
===+
1 |
===+
2 |
===+
3 |
===+

table_2 通过 table_1_idtable_1 相关

table_2

id | table_1_id | status
===+============+=======
1 | 1 | KR
===+============+=======
2 | 1 | BR
===+============+=======
3 | 2 | KR
===+============+=======
4 | 3 | KR
===+============+=======
5 | 3 | BR
===+============+=======

对于上面的例子,输出将是

t_1.id | t_2.id | t_2.status
=======+========+===========
1 | 1 | KR
=======+========+===========
1 | 2 | BR
=======+========+===========
3 | 4 | KR
=======+========+===========
3 | 5 | BR
=======+========+===========

在这个结果集中,table_1.id = 3 将被排除在外,因为它不包含两种状态的条目,如何实现呢?

编辑:我也尝试过 在 ("KR, BR") 中设置 group_concat(table_2.status)但每个条目仍然只有一个条目。

最佳答案

给这只猫剥皮的方法有很多种,但是这个怎么样?

SELECT t_1.ID, t_2.id, t_2.status
FROM table_1 t_1
INNER JOIN table_2 t_2 ON t_1.id = t_2.table_1_id
WHERE t_1.ID IN (SELECT table_1_id FROM table_2 WHERE status = 'KR')
AND t_1.ID IN (SELECT table_1_id FROM table_2 WHERE status = 'BR')

这可能会为您提供更多具有其他状态的行,因此您可能需要将其添加到 where 子句中:

AND t_2.status in ('KR', 'BR')

关于mysql - 如何实现有count(id)>没有group by的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52101160/

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