在MySql中查询多对多关系

普齐山

可以说我们有这个表a_b,它与表a和b是多对多关系:

+------+------+
| a_id | b_id |
+------+------+
|    1 |    1 |
|    1 |    2 |
|    1 |    3 |
|    2 |    1 |
|    2 |    2 |
+------+------+

现在,我想查询该表,以便获得所有a_id,其中包含b_id(1、2、3)的条目。在上面的示例中,输出应为

+------+
| a_id |
+------+
|    1 |
+------+

原因a_id = 2没有条目b_id = 3

一种可能的查询是:

select *
from a
join a_b as a_b1 
    on a_b1.a_id = a.id and a_b1.b_id = 1
join a_b as a_b2 
    on a_b2.a_id = a.id and a_b2.b_id = 2
join a_b as a_b3 
    on a_b3.a_id = a.id and a_b3.b_id = 3

但是... naaaa ...
这个问题的解决方案是什么?

戈登·利诺夫(Gordon Linoff)

我认为一个更简单的方法是group byhaving

select a_id
from a_b
where b_id in (1, 2, 3)
group by a_id
having count(*) = 3;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL,加入多对多关系查询

来自分类Dev

MYSQL - 查询多个结果的多对多关系

来自分类Dev

MySQL查询以检查缺失的多对多关系

来自分类Dev

多对多关系中的JPA标准查询

来自分类Dev

在SQL中查询多对多关系

来自分类Dev

查询redbeanphp中的多对多关系

来自分类Dev

多对多关系中的查询集

来自分类Dev

与MySQL的多对多关系

来自分类Dev

MySQL多对多关系

来自分类Dev

如何在MySQL中查询产品和过滤器之间的多对多关系?

来自分类Dev

查询与DetachedCriteria的多对多关系

来自分类Dev

如何查询多对多关系?

来自分类Dev

LINQ查询多对多关系

来自分类Dev

播放-查询多对多关系

来自分类Dev

Yii多对多关系查询

来自分类Dev

休眠查询多对多关系

来自分类Dev

无法查询多对多关系

来自分类Dev

eloquent:查询多对多关系

来自分类Dev

Laravel 多对多关系查询

来自分类Dev

多对多关系的SQL查询

来自分类Dev

php mysql多对多关系查询结果显示

来自分类Dev

在Laravel 5中建立多对多关系的动态查询

来自分类Dev

如何查询多对多关系中的空记录

来自分类Dev

休眠在查询多对多关系中找不到关联表

来自分类Dev

SQL查询在多对多关系中的精确匹配

来自分类Dev

SQLAlchemy:多对多关系查询中的过滤计数

来自分类Dev

在Django的多对多关系中从查询集中排除对象

来自分类Dev

如何从多对多关系的属性中获取Django查询的值?

来自分类Dev

查询从多对多关系桥接表中检索数据