sql 连接查询共四种,内连接,左连接,右连接,外连接
left join 左连接
将左边表的左右结果都显示出来,右边表不符合on 中的条件的显示null, on中的条件不会限制左表的数据,on中的条件只会限制右表的数据也可以用and添加多个条件
right join 右连接
跟左连接道理一样,右边表全显示,on条件限制左边表,左边表没有数据显示null
inner join 内连接
连接的两张表的数据都会根据on中的条件得出结果,所以内连接跟where效果是一样的
full join 全连接
两张表的数据都会显示出来,另一张表不符合on中条件的显示为null
由此看出 where和on的区别在于,on中的条件是根据两张表生成结果表之前对其中一张或两张数据进行限制,而where是在on条件执行之后,有了新表的结果之后再对新表中的数据进行过滤
group by 分组查询
根据一个或多个字段值相同进行分组,所以新的数据中每一条数据可以看成是原先的多条数据组成的,所以select时除了group by后的字段其他字段必须使用聚合函数对这组数据进行计算,select显示聚合函数的计算结果
group by 分组时having与where的区别
having别分组结果进行条件筛选,where是对每一组中的结果集数据进行筛选,所以where比having先执行