都知道A表中存在B表中不存在可以使用子查询解决,反正子查询千遍一律,写就完事
举手:
A表中有pid(主键),value(值)两个字段
B表中有cate_id(分类id),pid(A表关联数据),没有主键
结果:B表中cate_id为15的数据A表中不存在
就上面问题:反之得A表中所有数据,只要B表存在且cate_id为15的数据都不显示
子查询:
select * from A where (select count(*) from B where cate_id =15 and A.pid =B.pid) = 0
这样效率是不是低下呢为什么
这样也其实不一定低下,子查询使用的迪尔卡积来计算的
如果B表数据关联的越多到时候子查询的效率就体现了,前期子查询的效率可能体现不出来(并没有实际测试,但是使用过纯粹数据做过测试)
那么使用你们日常所觉得关联查询高于100%高于子查询的死亡回答怎么写呢、
select * from A left join B on B.cate_id =15 and b.pid=A.pid where b.pid IS NULL