繁体   English   中英

mysql查询3张表,join或union哪个最好计算余额?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM