[英]mysql query for 3 tables, join or union which one is best to calculate balance?
使用下面的3表,如何以最佳/更快的方式计算一百万条记录的库存余额?
根据我的经验,使用join可能需要不到0.1秒的时间,但最终结果却没有,
使用union可以获得最终结果,但需要1秒钟的时间...
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
当对内部查询使用join时,这很快,但是如何总结余额...
添加的信息:
the result should be 1 5 2 100
谢谢!
如果您确实需要查询中的所有列以及三个qty字段的总和,则可以执行SUM(a.qty+b.qty+c.qty)
,但是很难准确地确定您要查找的内容对于。 您要分组的那些表中是否有特定的键? 您是否完全需要sellid和scrapid?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.