如何从b中选择sum(a),其中c=(查询多个结果)

8gsdolmq  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(367)

例如,我如何才能正确地写出:

SUM(qty) FROM paid WHERE idDoc=(SELECT id FROM doc WHERE this=that)

当我确定第二个查询(select id from doc where this=that)生成多个结果时。
我可以使用任何更高级的语言“on top”来循环(我现在在delphi和php中使用它),但是我想知道是否可以用一个mysql查询(不是一个过程,只是一个查询)来完成。
不幸的是,我不知道如何更好地解释它,所以我无法找到一个适当的答案谷歌搜索。
目前我只在第一个查询周围使用一个嵌套循环,但是在mysql内部使用它肯定会更快更容易阅读。
谢谢您

gojuced7

gojuced71#

使用 IN 而不是 = 如果我理解正确的话

SELECT SUM(qty) FROM paid WHERE idDoc IN (SELECT id FROM doc WHERE this=that)
2vuwiymt

2vuwiymt2#

听起来你可以使用一个内部连接:

SELECT SUM(qty) 
FROM paid 
INNER JOIN doc ON paid.idDoc = doc.id
WHERE this = that
p5cysglq

p5cysglq3#

要对必须使用的值数组检查条件 IN 子句,例如:

SELECT SUM(qty)
FROM paid
WHERE idDoc IN (SELECT id FROM doc WHERE this=that)

相关问题