SQL Join 知识点梳理

Posted by icoding168 on 2020-01-06 21:42:35

分类: MySQL  
  • left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
  • right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
  • inner join(等值连接) 只返回两个表中联结字段相等的行
  • 如果 left join 的左表跟右表是一对多的关系,同时 SQL 语句中 select 了右表中的字段,那么可能会出现查询出重复记录的情况
  • group by 用来进行分组,通常与 count(), sum(), avg(), max() 等聚合函数一起使用,使用 group by 一定要保证查询条件在数据库中是有值的,没有值的必须通过判断 null 或长度来过滤掉,没有参与分组的其它字段不能直接 select,因为可能会有一些值在 group by 后无法查询到
  • 查询出重复数据,要看表里面是否有重复的数据,还是 sql 语句的查询结果有重复数据
  • 将静态数据从 ArrayList 中存到一个 HashMap 里,可以提高查找速度
  • 复杂的语句应进行拆分,将部分 join 的数据集合提前在应用程序中查询好,再将数据集合丢到 sql 中 join ,或利用 HashMap 进行数据匹配