有三张表,一张用来描述产品的规格型号,一张用来存储入库单信息,一张是入库单的明细条件:
具体数据如下:数据[产品表]产品ID 产品名称 规格 颜色 计量单位
--------------------------------------------------------
C01 垫片 12*24*7.5 Yellow 个
C02 弹簧 7*24 Black 个
C03 钻嘴 .. .. ..
C04 .. .. .. ..
..      ..   .. .. ..
数据[入库单]入库单号 入库类型 收货仓库 供应商 -----
---------------------------------------------------------
2005083001 采购入库 成品仓 永发五金
2005083002 采购入库 配件仓 星辉塑胶
.. .. .. ..
数据[入库明细]入库单号 条目 产品ID 入库数量
----------------------------------------------------------
2005083001 1 C01 3000
2005083001 2 C02 2800
2005083001 3 C03 1000
2005083001 4 C04 10000
.. .. .. ..
现在需要关于指定入库单的入库明细帐记录集,如: ---------------此字段存在于入库明细中-----------
入库单号 条目 产品ID 产品名称 规格型号 颜色 计量单位 入库数量
------------------------------ --------
2005083001 1 C01 垫片 12*24*7.5 Yellow 个 3000
2005083001 2 C02 弹簧 7*24 Black 个 2800 .. .. .. ..使用“select * from 入库明细 Where 入库单号='2005083001'",需要得到如上记录集,这条SQL查询该如何写?最种文法效果最好,效率最高?/各位老大,请教了?

解决方案 »

  1.   

    select a.*,c.产品ID,c.产品名称,c.规格型号,c.颜色,c.计量单位 from 入库明细 a,产品表 b where  a.产品ID=b.产品ID高效的方法是把这个sql变成视图,因为sql_server中视图是预先编译的
    因此快
      

  2.   

    最后一列由于宽度大了一点儿,有点错位,希望各位大侠能看明白。
    需要得到记录集,包含的字段分别是[入库单号]  [条目]  [产品ID]  [产品名称]  [规格型号]  [颜色]  [计量单位]  [入库数量]select * from 入库明细 Where 入库单号='2005083001'只能查到入库明细的记录集,要实现上面大概是需要联合查询什么的吧,不太清楚。哪位大侠有没耐心帮解释一下,给个链接也好,先谢谢了!解决即结贴!
      

  3.   

    回复人: zyg0(影子(成功减肥10斤,可给我饿坏了,我要补回来) ( ) 信誉:97  2005 影子兄弟,,,先谢谢了,我看看先。
      

  4.   

    select a.入库单号,条目,a.产品ID,产品名称,规格型号,颜色,计量单位,入库数量 from 入库明细 as a,  产品表 as b Where a.入库单号='2005083001' and a.产品ID = b.产品ID "
      

  5.   

    可是我用的是ACCESS做的数据库。惨。。
      

  6.   

    各位大侠,上面的A,B,C是啥意思啊?分别代表哪张表,我正在试,可是达不到效果啊。
      

  7.   

    使用“select * from 入库明细 Where 入库单号='2005083001'"就要得到上面的结果好象不行吧,因为入库明细中没有那么多的字段,除非你建个视图,或者用其他sql语句你不是只有两张表有“产品ID” 的字段,那对应一下就知道了啊,A,B,C只是你那三个表的一个别名!
    select a.*,c.产品ID,c.产品名称,c.规格型号,c.颜色,c.计量单位 from 入库明细 a,产品表 b,入库单 c where  a.产品ID=b.产品ID and a.入库单号=c.入库单号
    或者select a.*,c.产品ID,c.产品名称,c.规格型号,c.颜色,c.计量单位 from 入库明细 a,产品表 b,入库单 c where  a.产品ID=b.产品ID你试试看行否?
      

  8.   

    select a.入库单号,条目,b.产品ID,产品表.产品名称,产品表.规格型号,产品表.颜色,产品表.计量单位,b.入库数量 from ((入库单 a left join 入库明细 b  a. on a.入库单号=b.入库单号 ) left join   产品表 on b.产品ID = 产品表.产品ID ) Where a.入库单号='2005083001'
      

  9.   

    of123() 老兄的答案已经测试过没有问题了:select a.入库单号,条目,a.产品ID,产品名称,规格型号,颜色,计量单位,入库数量 from 入库明细 as a,  产品表 as b Where a.入库单号='2005083001' and a.产品ID = b.产品ID "但是不太明白,如有的字段标识表来源(a.入库单号),有的未标识表来源,它内部是怎样区分的,还有,如果如果两张表A/B中有字段名称是相同的,????有没有兄弟帮说明一下,或者给个详细的说明链接,或帮助文件。[email protected]这是此贴最后一点小小的要求,谢谢了!下班前结贴。
      

  10.   

    a 和 b是表在当前表中的别名
    a.入库单号 等价于 入库明细 .入库单号