mysql查询语句处理
两表做链接查询,
查理处理顺序各个阶段:
1) From: 对From子句中的坐标<left_table>和右表<right_table>执行笛卡尔积,产生虚拟表T1;
2)On : 对虚拟表T1应用 On筛选,只有那些符合<join_condition>的行才被插入虚拟表T2中;
3)Join:如果指定了OUTER JOIN (如left outer join,right outer join ,)那么表流标为匹配的行作为外部行添加到T2中,产生T3;
4)where : 对虚拟表T3应用where过滤条件,只有符合<where_condition>的行才被插入到T4中;
5)group by: 根据group by 子句中的列,对T4中的记录进行分组操作,产生T5
6)having: 对T5应用having过滤,只有符合<having_condition>的记录才被插入到虚拟表T7中;
7)select,
8)distinct ,去掉重复数据(建立内存临时表,表过大,产生磁盘IO,并对去重列叫unqie key)
9)order by
10)limit
好记性不如烂笔头,内存虽快,但不持久