表a:订单表 order
订单号 sheetid 供应商号 companyid 下单日期 ordertime
A000001 001 2014/6/15
A000002 002 2014/6/15
表b:订单商品表 orderitem
订单号 sheetid 商品号 productid 订货数量 number
A000001 000006 5
A000001 000005 2
A000001 000004 1
A000002 000001 2
A000002 000002 2
A000002 000003 2
表c:商品信息表 product
商品号 productid 商品名 name 更新日期 updatetime
000001 商品A 2014/5/15
000002 商品B 2014/5/15
000003 商品C 2014/5/15
000004 商品D 2014/5/15
000005 商品E 2014/5/15
000006 商品F 2014/5/15
000002 商品B 2014/6/1
000004 商品D 2014/6/1
.......
(还有很多数据,同一个商品的信息经常更新)
想联通过sheetid把表a和表b关联,通过productid把表b和表c关联
达到补充表2的数据内容的目的,希望最终展示的字段为:
b.sheetid b.productid c.name b.number a.companyid a.ordertime
现在用的语句:
select distinct * from
(select b.sheetid,b.productid,c.name,b.number,a.companyid,a.ordertime
from order a left join orderitem b on a.sheetid = b.sheetid left join product c on b.productid = c.productid) total
where to_char(total.createtime,'yyyy-mm-dd')='2014-06-15'
表b的数据只有6行,但是用上面的语句显示的结果有9行(有3行重复数据),而且没用distinct函数之前查出的结果更多。
不知道是因为表c中同一个商品更新了太多次,还是我的语句有问题,望大侠指点!