1、group_concat()函数。把groupby的分组中字段数据组合显示出来函数
select s_id , GROUP_CONCAT(要显示的字段名) from table group by 分组字段ui
2、group_by 与 Having 结合 :根据条件筛选分组条件spa
select s_id ,group_concat(f_name) as names from fruits group by a_id having count(f_name) > 1设计
Having 与 where 区别:it
- 关键字用来在数据分组以后进行分组筛选。
- where在分组以前筛选记录,且where排除掉的数据不会出如今分组的结果中
3、多字段分组table
使用group by进行分组,指定多个字段,能够按照层次分组,先根据第一个字段进行分组,而后在对分组根据第二根第二个字段进行分组。class
4、使用LImit限制查询结果的数量select
Limit [位置偏移量],行数im
偏移量能够不指定,行数指返回的数据的条数数据
select * from frults limit 4:返回查询结果的前4条数据
select * from frults limit 5,3 :返回查询结果偏移量为5(从第六条数据开始)后的三条数据
5、内链接查询
select * from frults ,suppliers where frults.s_id = suppliers.s_id
select * from frults inner join suppliers on frults.s_id = suppliers.s_id
两种方式同样的
6、自链接查询
查询中设计的表示在物理上同一张表,逻辑上是两张表。自链接是一种特殊的内链接
select f1.s_id , f2.s_id from frults as f1 ,frults as f2 where f1.s_id = f2.s_id and f1.s_id = "a1"
7、左外链接查询
包括左表的全部行,若是右表没有匹配行就会为NUL
select * from frults left outer join suppliers on frults.s_id = suppliers.s_id
8、右外链接查询
包括右表的全部行,若是左表没有匹配行就会为NUL
select * from frults right outer join suppliers on frults.s_id = suppliers.s_id
9、ANY,SOME只要知足其中一个就返回true
10、ALL 全部条件都知足才返回True
11、exists关键字:若是子查询返回结果不为空,则会进行主查询,不然不会进行主查询,能够在where中使用