如何基于同组g[k]关联TableA与TableB并生成目标重复数据?
实现跨表同组r值的批量匹配输出方案
这个需求其实就是要实现基于分组的跨表关联扩展,我来给你拆解下逻辑并给出具体的SQL实现方案:
需求逻辑回顾
- 对TableA的每一条记录,先通过它的
r字段匹配TableB,找到对应的g分组 - 然后把这个
g分组下所有TableB的r值,和TableA当前记录的a、b字段组合输出
具体SQL实现
我们可以通过两次JOIN操作来完成这个逻辑:第一次JOIN找到当前记录所属的分组,第二次JOIN拉取该分组下的所有r值,代码如下:
SELECT ta.a, ta.b, tb2.r FROM TableA ta -- 第一步:匹配TableB,拿到当前记录对应的g分组 INNER JOIN TableB tb1 ON ta.r = tb1.r -- 第二步:关联同g分组下的所有TableB记录 INNER JOIN TableB tb2 ON tb1.g = tb2.g -- 可选:按a、b、r排序,让结果更规整 ORDER BY ta.a, ta.b, tb2.r;
结果验证
代入你的测试数据:
- TableA的
a b r1通过tb1匹配到g1,再关联tb2中g1对应的r1、r2、r3,生成3条记录 - TableA的
c d r4通过tb1匹配到g2,关联tb2中g2对应的r4、r5,生成2条记录 - TableA的
e f r6在TableB中没有匹配的r值,所以不会出现在结果里
最终输出完全符合你想要的结果:a b r1、a b r2、a b r3、c d r4、c d r5。
内容的提问来源于stack exchange,提问作者user393679
相关产品推荐
相关产品推荐

