UNION
- 将多个select查询的结果组合成一个结果集合。
- SELECT ... UNION [ALL|DISTINCT] SELECT ...
- 默认 DISTINCT 方式,即所有返回的行都是唯一的
- 建议,对每个SELECT查询加上小括号包裹。
- ORDER BY 排序时,需加上 LIMIT 进行结合。
- 需要各select查询的字段数量一样。
- 每个select查询的字段列表(数量、类型)应一致,因为结果中的字段名以第一条select语句为准。
子查询
- - 子查询需用括号包裹。
- - from型
- from后要求是一个表,必须给子查询结果取个别名。
- - 简化每个查询内的条件。
- - from型需将结果生成一个临时表格,可用以原表的锁定的释放。
- - 子查询返回一个表,表型子查询。
- select * from (select * from tb where id>0) as subfrom where id>1;
- - where型
- - 子查询返回一个值,标量子查询。
- - 不需要给子查询取别名。
- - where子查询内的表,不能直接用以更新。
- select * from tb where money = (select max(money) from tb);
- -- 列子查询
- 如果子查询结果返回的是一列。
- 使用 in 或 not in 完成查询
- exists 和 not exists 条件
- 如果子查询返回数据,则返回1或0。常用于判断条件。
- select column1 from t1 where exists (select * from t2);
- -- 行子查询
- 查询条件是一个行。
- select * from t1 where (id, gender) in (select id, gender from t2);
- 行构造符:(col1, col2, ...) 或 ROW(col1, col2, ...)
- 行构造符通常用于与对能返回两个或两个以上列的子查询进行比较。
- -- 特殊运算符
- != all() 相当于 not in
- = some() 相当于 in。any 是 some 的别名
- != some() 不等同于 not in,不等于其中某一个。
- all, some 可以配合其他运算符一起使用。
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|