Mysql 如何实现计数(id)的效果>;没有分组
如何从Mysql 如何实现计数(id)的效果>;没有分组,mysql,Mysql,如何从table_1中选择所有id,并包括表2同时具有KR和BR状态的条目group by table_1.id具有count(table_1.id)>1将只为每个条目包含一个id,我需要两个idwhere in('KR','BR')将给出或。所以我需要的是,其中条目存在于表2中,并且有一个用于KR和BR的条目 table_1 id | ===+ 1 | ===+ 2 | ===+ 3 | ===+ table_2通过table_1\u id table_2 id | table_
table_1
中选择所有id
,并包括表2同时具有KR
和BR
状态的条目group by table_1.id具有count(table_1.id)>1
将只为每个条目包含一个id,我需要两个idwhere in('KR','BR')
将给出或。所以我需要的是,其中条目存在于表2中,并且有一个用于KR和BR的条目
table_1
id |
===+
1 |
===+
2 |
===+
3 |
===+
table_2
通过table_1\u id
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
=======+========+===========
在这个结果集中,表_1.id=3
将被忽略,因为它不包含两种状态的条目,如何实现这一点
编辑:我还尝试在(“KR,BR”)
但是每只猫仍然只有一个条目。给这只猫剥皮的方法很多,但是这个怎么样
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')
是的,就像那样。删除我自己的答案。