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
谢谢!
如果您确实需要查询中的所有列以及三个qty字段的总和,那么您可以执行SUM(a.qty+b.qty+c.qty)
,但很难确切地确定您要查找的内容。这些表格中是否有特定的关键字?你需要sellid和scrapid吗?
嗨,额外的信息被添加。感谢评论! – mos 2011-05-09 15:14:23
你好muffinista,sellid和scrpid是不需要这个查询我认为。我也尝试过使用每个必填字段的子查询,但我认为使用JOIN应该是最快捷的方法......但如何做到这一点? – mos 2011-05-11 05:05:09
您的数量在上述预期结果中是否正确?我不明白stid = 1的数量可能是5,但也许我错过了一些东西。 – muffinista 2011-05-12 13:37:07
如何在没有价格的情况下获得余额? – Matthew 2011-05-09 14:34:51
嗨,感谢您的评论。只有余额可以! – mos 2011-05-09 15:09:22