最近有个需求,在一个一对多的关联表中需要查询同时关联了多个业务的申请数据。
A表 业务表
B表 商品表
C表 业务关联商品
C表中 有
A1 B1,
A2 B1,
A3 B1,
A1 B2,
A2 B2,
A1 B2,
A5 B3,
这样的数据,现在要去查询关联了A1,A2的数据B表数据。
查询sql为
bash
select * from B left join C where on B.id = C.b_id where C.a_id in (A1,A2) group by b.id having count( DISTINCT C.b_id) = 2.
这里的2是通过计算要查询的业务的数量动态传入的。
这样查询就可以查出多项关联的数据了