(from后的表)进行过滤,having对分组后的数据进行过滤,
where是对于行数据的筛选,having是对于分组数据的的筛选
where和having在某些情况下可以显示相同的效果但where效率更高...,参考sql执行顺序.
sql执行顺序
select...
from 表名
where 行数据的筛选条件
group by 分组依据
having by 分组数据的筛选条件
order by 排序依据...>6的
表连接 join on
形成大表
分类:内连接,外链接(左右全),交叉连接,自连接
内连接
select*from t1 inner join t2 on 连接条件 where ....
slect...部门名 若某一表多一行,大表中无那一行
左外连接(顺序有要求,左表为主,左去右找,左边表连接右边表,左找不到右,右部分空)
left (outer可省) join
右外连接(右边为主,右找左,左边无...应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,(可以使用union)
in 和 not in 也要慎用,否则会导致全表扫描(能用 between 就不要用