Foxtable(狐表)用户栏目专家坐堂 → [求助]求助,帮助文件里的INNER JOIN使用


  共有2291人关注过本帖树形打印复制链接

主题:[求助]求助,帮助文件里的INNER JOIN使用

帅哥哟,离线,有人找我吗?
183966998
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:1261 威望:0 精华:0 注册:2017/4/14 21:52:00
[求助]求助,帮助文件里的INNER JOIN使用  发帖心情 Post By:2018/11/2 16:22:00 [只看该作者]

帮助INNER JOIN

一般用户可以忽略本节内容。

我们已经知道,通过INNER JOIN语句可以查询多个表的数据,其中的表可以是另一个Sel  ect语句,利用这个功能,可以完成很多用常规编码很难解决的问题。

你可以打开CaseStudy目录下的示例文件“统计演示.table”来测试下面的Sel  ect语句。

示例一

例如我们要查询出每个产品最近一次订购的日期、数量以及客户,可以使用下面的Se lect语句:

Se   lect a.产品,a.客户,a.日期,a.数量 From {订单} a INNER JOIN (Sel  ect 产品,Max(日期) As 日期 From {订单} Group By 产品) b on a.产品 = b.产品 And a.日期 = b.日期

上面的Sele  ct语句,其实有两个表,分别是a和b,a表就是订单表,红色部分的语句,给订单表指定了一个别名"a",b表就上面绿色部分的Sel  ect语句,注意这段Sel  ect语句要用括号括起来,在括号之后指定别名“b”。

示例二

再例如,我们要查询出每个产品订购数量最大的订单,Sel ect语句如下:

Sel   ect a.产品,a.客户,a.日期,a.数量 From {订单} a INNER JOIN (Sel  ect 产品,Max(数量) As 数量 From {订单} Group By 产品) b on a.产品 = b.产品 And a.数量 = b.数量 Order By a.产品




示例一:我不太明白,明明说的查询出每个产品最近一次订购日期,数量,及客户,可通过查询帮助里面提供的se lect语句查询出来的,并不是每个产品最近一次订购的日期

以下附图:
图片点击可在新窗口打开查看此主题相关图片如下:qq浏览器截图20181102160803.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/2 16:51:00 [只看该作者]

1、应该理解成这样【查找每一个产品,最后一次被谁购买】。

 

2、如果你需要计算【每一个用户,购买每一个产品,最后的时间、数量】,参考

 

Select a.产品,a.客户,a.日期,a.数量 From {订单} a INNER JOIN (Select 客户,产品,Max(日期) As 日期 From {订单} Group By 客户,产品) b on a.产品 = b.产品 And a.日期 = b.日期 and a.客户=b.客户 order by a.客户,a.产品


 回到顶部
帅哥哟,离线,有人找我吗?
183966998
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:1261 威望:0 精华:0 注册:2017/4/14 21:52:00
  发帖心情 Post By:2018/11/2 20:19:00 [只看该作者]

好的,谢谢,老师

 回到顶部