繁体   English   中英

如何进行一对多查询?

[英]How to make this one to many query?

我需要帮助进行此选择。

表格1

表2

这些是2张桌子。 第一张表:-有唯一/主要的buyID-s(我们可以说这里的buyID是和Order)-distID-s可以很多。

第二张表:

-该表没有唯一的标识符
-此处的相同buyID大约一个以上(基本上,此处的buyID提供了有关订单的更多详细信息,并从第一个表中提供了该订单的产品列表(buyID)。

我正在尝试执行的操作,但无法确定如何编写查询:
-选择所有buyID-s,其中distID = 119从表1(buyID-s为1724、1833和1890)
-从表2中,求和数量,其中buyID(来自table2)= buyID(来自table1)。

结果,我必须具有:distID = 119
buyID = 1724 --------数量= 25(例如)
buyID = 1833 --------数量= 60
buyID = 1890 --------数量= 23(如果还有product_number列表,那将很棒)

我希望这是有道理的。 我没有太多经验,我正在尝试一个小时,我确定不是太辛苦,但这让我很生气。

我正在等待一点帮助。 谢谢

使用LEFTJOINGROUP BY

select t1.distID, t2.buyID,sum(t2.quantity) as quantity
from table1 t1
left join table2 t2 on t2.buyID = t1.buyID
where t1.distID = 119
group by t1.distID, t2.buyID

如果还希望在结果集中包含product_number ,则必须使用MAX(product_number) as product_number类的聚合函数将它们选择MAX(product_number) as product_number因为查询使用GROUP BY子句。

从Table2中选择buyID的总和(数量)(从Table1中选择distID = 119的buyID)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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