测试数据a表id1-10,b表id5-12,c表id2-11
目的:找到满足a表不满足b表满足c表的id(应该是2,3,4)
use test;
create table testtesta (id bigint);
insert into testtesta values (1);
insert into testtesta values (2);
insert into testtesta values (3);
insert into testtesta values (4);
insert into testtesta values (5);
insert into testtesta values (6);
insert into testtesta values (7);
insert into testtesta values (8);
insert into testtesta values (9);
insert into testtesta values (10);
create table testtestb (id bigint);
insert into testtestb values (5);
insert into testtestb values (6);
insert into testtestb values (7);
insert into testtestb values (8);
insert into testtestb values (9);
insert into testtestb values (10);
insert into testtestb values (11);
insert into testtestb values (12);
create table testtestc (id bigint);
insert into testtestc values (2);
insert into testtestc values (3);
insert into testtestc values (4);
insert into testtestc values (5);
insert into testtestc values (6);
insert into testtestc values (7);
insert into testtestc values (8);
insert into testtestc values (9);
insert into testtestc values (10);
insert into testtestc values (11);
先看一下多次left join
select *
FROM testtesta
left join testtestb
on testtesta.id = testtestb.id
left join testtestc
on testtesta.id=testtestc.id;
left join ... on t1.id = t2.id 说明t1里的所有值跟t2里的值去匹配。
同理: on t1.id = t3.id 说明t1里的所有值跟t3里的值去匹配。
t3其实跟t2没有任何关联,它们都是跟t1关联
注意:要实现这种效果一定要每次left join的时候都是a表的id去连接
如果这样写
select *
FROM testtesta
left join testtestb
on testtesta.id = testtestb.id
left join testtestc
on testtestb.id=testtestc.id;
结果就是:
这样本来c应该和b没关系的也变成有关系的了
回到问题的起点:
找到满足a表不满足b表满足c表的id(应该是2,3,4)

select *
FROM testtesta
join testtestb
on testtesta.id = testtestb.id
left join testtestc
on testtesta.id=testtestc.id;
这样紫呢 其实有了join 只有ab的交集了 所以就算后面是left join 也是和前的交集left

这篇博客探讨了在SQL中使用多个left join时如何正确查找满足特定条件的数据。通过一个实例,解释了为何在left join过程中,每次连接都必须以a表的id为基础,以避免无关表之间的错误关联。内容指出,为了找到只存在于a表和c表但不在b表中的id(2, 3, 4),关键在于理解left join的工作原理和连接顺序。"
100894023,7519748,Tinker 热修复详解,"['Android开发', '热修复技术', 'Tinker框架', '补丁机制']
4556

被折叠的 条评论
为什么被折叠?



