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中使用