有一下场景,有两个表,a表和b表是多对多表,他们有某种关联关系(比如a.id在b表有aid这个字段与之对应),需要将他们的字段通过这种关联关系链接起来并返回到前端展示。那我们这里肯定有两种实现方式:
- 一种是直接使用sql select * from a join b on a.id=b.aid
- 另一种就是先查满足条件的a表记录,再将a的ids作为过滤条件查询b表对应记录,实现关联。
这里不知道第一种和第二种使用场景的区别是什么。这里想问问有大佬知道吗?我的想法可能与a表和b表数据量相关,a表和b表数据量差别很多可能使用第二种好点,但网上说还有缓存的关系,但不太了解,望大佬解答。
一般来说是一个sql能搞定的就不要多次查询,多次查询的资源消耗比较大,至于表的数据量大小可以通过表关联的查询语句的调整来实现优化