日期:2014-05-18  浏览次数:20486 次

这种表结构应该怎弄。有点想法。。

a43  
PurchaseNum
P20070701
P20070702


a71
PurchaseNum     Prename       StoreNum
P20070701         P001               S001
P20070701         P002               S002
P20070701         P003               S003

表a73
PurchaseNum     ProviderID   StoreNum
P20070702         F001               C001
P20070702         F002               C002
P20070702         F003               C003


要显示成这种效果
PurchaseNum         StoreNum  
P20070701               S001
P20070701               S002
P20070701               S003
P20070702               C001
P20070702               C001
P20070702               C001

就是说a43当中的PurchaseNum只能被a71或着a73两表中其中一个表使用a71使用了
P20070701,a73就不能使用.也就是说先判断a43当前的PurchaseNum先被哪张表使用。然后调用相关信息

现在的情况是。假如把数据取出来在程序里面手动写DataTable可以生成这样的效果。因为这东西数据量增长太快。这样弄的话速度可能会跟不上来?各位有好点的办法没呀?谢谢。



------解决方案--------------------
如果你确信a43表中的PurchaseNum只在a71或a73种存在,union一下不就可以了么。
应该只有一个表能查到数据
------解决方案--------------------
直接這樣就可以


Select A.PurchaseNum, B.StoreNum From a43 A Inner Join a71 B On A.PurchaseNum = B.PurchaseNum
Union
Select A.PurchaseNum, B.StoreNum From a43 A Inner Join a73 B On A.PurchaseNum = B.PurchaseNum
------解决方案--------------------
要显示成这种效果
PurchaseNum StoreNum
P20070701 S001
P20070701 S002
P20070701 S003
P20070702 C001
P20070702 C001
P20070702 C001

为什么P20070701分别与S001,S002,S003 对应,而P20070702 只与C001对应?
这个关系没看出来。!~~。。。。