请教一个主、从表的查询问题(100分)

  • 主题发起人 主题发起人 lxn820217
  • 开始时间 开始时间
L

lxn820217

Unregistered / Unconfirmed
GUEST, unregistred user!
想请教一个主、从表的查询问题!我在编写商品库存管理时用到了主、从表
其中主表是某种商品的基本情况(如:商品编号、商品名称、商品规格、重量、包装、图片...等)从表是进、出库情况(如:商品编号、进库时间、出库库时间、进库数量、价格...等)。我是用商品编号将两个表联接为主、从关系的。如果用主表的任何字段查询都没有问题,但如果要查询从表字段时我不知如何编写SQL语句;比如要查询日期:2006.10.4那天都进了哪些货,我只能在从表中查询,但如何再将主表与从表连接呢?!我试过在主表中用left join先将这两个表连接,问题是如果2006.10.4 那天的某种商品进、出过多次时,主表会多次出现这种商品,而且查询时间特别长;我还用了:
select ART_NO,... from price_co
where ART_NO in(select DISTINCT ART_NO from storge2 where Date1='2006.10.04')
作我主表的SQL,但查询时间特别长。
想请教各位,有没有其他的方法来实现!!不胜感激!!如果分数不够我再加分!务必请
帮帮我!急
 
用Exist关键字查询,可以大幅度提高查询效率
 
如何使用Exist关键字查询?!
 
Johnny_du:你好!
请告诉我如何使用Exist关键字查询?!
 
SELECT ART_NO,... from price_co WHERE EXISTS(select DISTINCT ART_NO from storge2 where Date1='2006.10.04')
 
我沉得應該不是這樣架構的吧,一般的庫存管理應該是四個表(有的是五個,包含一個廠商信息表)才對,一個商品基本信息表(包含商品編號,名稱,規格..等),,另外一張商品入庫表與商品出庫表(有些可能是把這兩個表弄在一起用一個字段加以區分出入庫,里面欄位肯定得有入庫單號,商品編號,入庫日期,經手人,廠商編號等等),一個庫存主表,(以,我要查庫存我就到庫存表中查,我要查入庫我就到入庫表中,出庫就到出庫表中查,查進貨應該是查入庫就可以(你你說的我只要查入庫日期等於2006/10/04就可以了啊),好像不用弄個主從表吧,
 
问题解决了别忘了给我分数哦!呵呵:)
 
select a.* from price_co as a left join (select DISTINCT ART_NO from storge2 where Date1='2006.10.04')as b on a.ART_NO=b.ART_NO
 
支持xinjinren的做法
 
xinjinren:你好!
我用你的方法:
select a.* from price_co as a left join (select DISTINCT ART_NO from storge2 where Date1='2006.10.04')as b on a.ART_NO=b.ART_NO
但不能执行!不知什么原因!?
 
select a.* from price_co a , storge2 b where a.ART_NO=b.ART_NO and Date1='2006.10.04'
 
提示什么错误
 
xinjinren:
提示:SQL error code = -104
(我用的是Interbase,但命令是一样的!)
 
你把a.* 换成你要查询的具体字段试试呢
select a.ART_NO,... from price_co a left join (select DISTINCT ART_NO from storge2 where Date1='2006.10.04') b on a.ART_NO=b.ART_NO
 
我就是换成具体字段!但不能执行!
提示:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 44
select
Statement: select a.ART_NO from price_co a left join (select DISTINCT ART_NO from storge2 where Date1='2006.10.04') b on a.ART_NO=b.ART_NO
 
朋友:像你这样的设计,不存在主子表关系了。直接查询“子表”,把主表作为从表来
链接,用=就可以了。要注意的是产品编号一定是唯一的。
 
tian2048:你好!
产品编号是唯一的,我也考虑将主从颠倒,这样一来主表变从表后仅显示一条数据了!
你看应怎样设计好?!我想主从表设计时,总有一个查询从表字段的问题,那应怎样实现,
难道主、从结构就不能查从表吗?!
 
用Exists应该能够完全解决你的问题,怎么还没有结帖呢?
 
我试过用Exists,但完全不是想要的结果,库存数据全部显示出来,不信你试试!
 
用 IN 完全可以,但速度太慢,因为库存有24000多个品种!
 
后退
顶部