额,小弟刚做后端不久,可能有一些名词会弄错,希望大大们见谅。
目前,我在做的一个后台的服务,涉及到一个 主播工资结算的查询
a 表:主播个人信息表 b 表:每个月主播的工资表,b 表为主要的表
普通的查询: 先从 b 表里面拉取 20 条数据,然后在根据主播的 id 去 a 表里面把主播的信息拉回来,然后根据 id 拼接数据,然后返回给前端
条件查询: 假如我要查询的主播类型是已经签约的,我的做法是,去 a 表里面把已经签约的主播的前 20 条找回来,然后拿着这个 20 个 id 去 b 表里面把相关的工资记录找到,然后再去拿一次 a 表的数据,把主播的信息补充完整,然后返回给前端
条件查询会遇到的问题是,假如我在 a 表里面找到前 20 条数据,刚好在 b 表里面找不到,那么就不会返回任何数据,那么会给人的感觉是"我想查看已经签约的主播的工资记录,但是却没有找到任何一条记录",也许你会奇怪为啥在 b 表里面会找不到数据,因为 b 表里面的数据是每个主播每个月的工资,有一些主播可能是刚签约的,所以刚好缺少某一个月的数据。
这个问题该如何解决呢?我们的数据库是拆分开的,不允许用 left join 之类的东西