再谈INNER JOIN

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

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

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

示例一

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

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

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

示例二

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

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


本页地址:http://www.foxtable.com/webhelp/topics/2473.htm