一.分组后结果筛选
Select 要显示的字段名1,要显示的字段名2,函数 from 表名 group by 要显示的字段名1,要显示的字段名2 Having 条件;
例如:/* 地区的男女人数>1的,且性别不为其他的*/
SELECT guestArea,guestSex,COUNT(*) FROM guestinfo
GROUP BY guestArea,guestSex
HAVING COUNT(*)>1 AND guestSex NOT LIKE '%其他%'
二.汇总(分组的结果)
Select 要显示的字段名1 ,函数() from 表名 group by 要显示的字段名1
With rollup.
例如:
查询出每个地区的人数,并且汇总
SELECT guestArea,COUNT(*) FROM guestinfo GROUP BY guestArea WITH ROLLUP
三.连接查询
1.内连接
Select * from 表名1 inner join 表名2 on 表名1.字段名=表名2.字段名(注意:字段名相同)
例如:查询嘉宾表和商品表里的数据,并且要求显示的guestid相同且不为空
SELECT * FROM guestinfo INNER JOIN productinfo
ON guestinfo.guestId=productinfo.guestid
2.查询相应的内容:
SELECT guestinfo.guestName 姓名,guestinfo.guestsex 性别,
productinfo.productname 产品名,productinfo.productprice 价格
FROM guestinfo
INNER JOIN productinfo
ON guestinfo.guestId=productinfo.guestid
3.多表查询
Select * from 表名1 ,表名2 where 表名1.字段名=表名2.字段名(注意:字段名相同)
4.外连接
(1)左外连接
Select * from 表名1 left join 表名2 on 表名1.字段名=表名2.字段名(注意:字段名相同)
(2)右外连接
Select * from 表名1 right join 表名2 on 表名1.字段名=表名2.字段名(注意:字段名相同)