这个子句对VT3表中的差异的组举办过滤,只浸染于分组后的数据,满意HAVING前提的子句被插手到VT4表中。
- mysql> SELECT
- -> *
- -> FROM
- -> table1 AS a
- -> LEFT OUTER JOIN table2 AS b ON a.uid = b.uid
- -> WHERE
- -> a. NAME = 'mike'
- -> GROUP BY
- -> a.uid
- -> HAVING
- -> count(b.oid) < 2;
- +-----+------+------+------+
- | uid | name | oid | uid |
- +-----+------+------+------+
- | ccc | mike | 6 | ccc |
- | ddd | mike | NULL | NULL |
- +-----+------+------+------+
- 2 rows in set (0.00 sec)
5、SELECT
这个子句对SELECT子句中的元素举办处理赏罚,天生VT5表。
(5-J1)计较表达式 计较SELECT 子句中的表达式,天生VT5-J1
(5-J2)DISTINCT
探求VT5-1中的一再列,并删掉,天生VT5-J2
假如在查询中指定了DISTINCT子句,则会建设一张内存姑且表(假如内存放不下,就必要存放在硬盘了)。这张姑且表的表布局和上一步发生的假造表VT5是一样的,差异的是对举办DISTINCT操纵的列增进了一个独一索引,以此来除一再数据。
- mysql> SELECT
- -> a.uid,
- -> count(b.oid) AS total
- -> FROM
- -> table1 AS a
- -> LEFT OUTER JOIN table2 AS b ON a.uid = b.uid
- -> WHERE
- -> a. NAME = 'mike'
- -> GROUP BY
- -> a.uid
- -> HAVING
- -> count(b.oid) < 2;
- +-----+-------+
- | uid | total |
- +-----+-------+
- | ccc | 1 |
- | ddd | 0 |
- +-----+-------+
- 2 rows in set (0.00 sec)
6、ORDER BY
从VT5-J2中的表中,按照ORDER BY 子句的前提对功效举办排序,天生VT6表。
留意:
独一可行使SELECT中别名的处所;
- mysql> SELECT
- -> a.uid,
- -> count(b.oid) AS total
- -> FROM
- -> table1 AS a
- -> LEFT OUTER JOIN table2 AS b ON a.uid = b.uid
- -> WHERE
- -> a. NAME = 'mike'
- -> GROUP BY
- -> a.uid
- -> HAVING
- -> count(b.oid) < 2
- -> ORDER BY
- -> total DESC;
- +-----+-------+
- | uid | total |
- +-----+-------+
- | ccc | 1 |
- | ddd | 0 |
- +-----+-------+
- 2 rows in set (0.00 sec)
7、LIMIT
LIMIT子句从上一步获得的VT6假造表中选出从指定位置开始的指定行数据。
留意:
offset和rows的正负带来的影响;
当偏移量很大时服从是很低的,可以这么做:
回收子查询的方法优化,在子查询里先从索引获取到最大id,然后倒序排,再取N行功效集 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|