MySQL基础---多表查询

一.分组后结果筛选
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.字段名(注意:字段名相同)

发布了32 篇原创文章 · 获赞 96 · 访问量 1583

猜你喜欢

转载自blog.csdn.net/qq_44534541/article/details/105501096
今日推荐