mysql查询3个表,加入或联合哪一个最好计算余额?

mysql查询3个表,加入或联合哪一个最好计算余额?

问题描述:

以下3张表格,如何以最佳/更快的方式计算百万条记录的库存余额?!
作为我的经验,使用连接可以小于0.1秒,但并非最终结果,
使用工会可以得到最终的结果,但它需要1X秒......mysql查询3个表,加入或联合哪一个最好计算余额?

 
stocktable 
stid productid qty 
1 1 100 
2 2 200 

sellstable 
sellid stid qty 
1 1 50 
2 1 30 

scraptable 
scrapid stid qty 
1 1 10 
2 1 5 
3 2 100 
SELECT 
    a.stid, 
    qty, 
    sellid, 
    b.qty, 
    scrapid, 
    c.qty 
FROM 
    stocktable AS a 
LEFT JOIN sellstable AS b ON a.stid = b.stid 
LEFT JOIN scraptable AS c ON a.stid = c.stid 

 
1 100 1 50 1 10 
1 100 1 50 1 5 
1 100 2 30 1 10 
1 100 2 30 1 5 
2 200 null null 3 100 

此使用时加入了内部查询,但如何总结余额为快...

补充信息:

 
the result should be 
1 5 
2 100 

谢谢!

+1

如何在没有价格的情况下获得余额? – Matthew 2011-05-09 14:34:51

+0

嗨,感谢您的评论。只有余额可以! – mos 2011-05-09 15:09:22

如果您确实需要查询中的所有列以及三个qty字段的总和,那么您可以执行SUM(a.qty+b.qty+c.qty),但很难确切地确定您要查找的内容。这些表格中是否有特定的关键字?你需要sellid和scrapid吗?

+0

嗨,额外的信息被添加。感谢评论! – mos 2011-05-09 15:14:23

+0

你好muffinista,sellid和scrpid是不需要这个查询我认为。我也尝试过使用每个必填字段的子查询,但我认为使用JOIN应该是最快捷的方法......但如何做到这一点? – mos 2011-05-11 05:05:09

+0

您的数量在上述预期结果中是否正确?我不明白stid = 1的数量可能是5,但也许我错过了一些东西。 – muffinista 2011-05-12 13:37:07