博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道题来对mysql的连接查询复习
阅读量:6942 次
发布时间:2019-06-27

本文共 1210 字,大约阅读时间需要 4 分钟。

题目如上,下面是我按照上面的表字段自己建的表

car

customer

employee

sale

下面是对第四问的的解答,用的是mysql 的连接查询,可能方法有点麻烦。

我的想法很简单,这个查询针对多个表,我就把需要查询的结果一个个的先做简单查询,最后再进行组合。

第一步:从sale和car表中查出每个员工的销售额:

SELECT sale.EMPnum,SUM((sale.CARnum*car.Cprice)) AS money  FROM sale,car WHERE sale.CARnum=car.Cid GROUP BY EMPnum;#从sale和car表中查出每个员工的

第二步:查询每个员工的销售数量:

SELECT EMPnum,COUNT(EMPnum) AS num FROM sale GROUP BY EMPnum;#查询每个员工的销售数量  

第三步:查询员工的名称:  

SELECT Eid,Ename FROM Employee;#查询员工的名字

第四步:将第一步和第二步的结果做为这次查询的表,查询每个员工的销售额和销售数量:

 

SELECT t1.EMPnum,t1.money,t2.num FROM (SELECT sale.EMPnum,SUM((sale.CARnum*car.Cprice)) AS money  FROM sale,car WHERE sale.CARnum=car.Cid GROUP BY EMPnum) AS t1 ,(SELECT EMPnum,COUNT(EMPnum) AS num FROM sale GROUP BY EMPnum) AS t2 WHERE t1.EMPnum=t2.EMPnum;

 

 第五步:将第四步的结果和第三步的结果做为这步的查询表,查询最后的结果

SELECT t3.EMPnum,t3.money,t3.num,t4.Ename FROM (SELECT t1.EMPnum,t1.money,t2.num FROM (SELECT sale.EMPnum,SUM((sale.CARnum*car.Cprice)) AS money  FROM sale,car WHERE sale.CARnum=car.Cid GROUP BY EMPnum) AS t1 ,(SELECT EMPnum,COUNT(EMPnum) AS num FROM sale GROUP BY EMPnum) AS t2 WHERE t1.EMPnum=t2.EMPnum) AS t3,(SELECT Eid,Ename FROM Employee) AS t4 WHERE t3.EMPnum=t4.Eid;

  

  

转载于:https://www.cnblogs.com/Jc-zhu/p/4971990.html

你可能感兴趣的文章
[20160721]rman与undo表空间备份.txt
查看>>
Java---网络编程(4)-C/S-B/S
查看>>
jQuery修改class属性和CSS样式
查看>>
SQL Server 2008 R2 安全性专题(一):安全原则
查看>>
经典算法题每日演练——第三题 猴子吃桃
查看>>
iOS-开发者相关的几种证书
查看>>
VSTO学习笔记(三) 开发Office 2010 64位COM加载项
查看>>
日期与毫秒互转(转)
查看>>
JavaWeb-过滤器Filter学习(一)Filter知识点
查看>>
SSH概念及常用操作汇总
查看>>
Eclipse新版 syso无法自动补全的解决方法
查看>>
Sublime Es6教程1-环境搭建
查看>>
Nginx配置upstream实现负载均衡
查看>>
FFMPEG-AVFilter研究
查看>>
学习笔记DL004:标量、向量、矩阵、张量,矩阵、向量相乘,单位矩阵、逆矩阵...
查看>>
MapReduce(一)
查看>>
有感"全球癌症热点图:患癌负担转至发展中国家"
查看>>
git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?...
查看>>
Kafka——使用java api进行pub & sub
查看>>
Android——Layout:RelativeLayout
查看>>