例如,如何正确编写此代码:
SUM(qty) FROM paid WHERE idDoc=(SELECT id FROM doc WHERE this=that)
当我确定第二个查询(SELECT doc from SELECT WHERE this = that)产生的结果多于一个结果时。
我可以使用“顶层”的任何高级语言来遍历它(我现在正在Delphi和PHP中使用它),但是我想知道是否可以通过单个MySQL查询(而不是过程)来完成,只是一个查询)。
不幸的是,我不知道如何更好地解释它,因此我无法找到关于它的正确答案。
暂时,我将只在第一个查询周围使用嵌套循环,但是在MySQL内部进行此操作肯定会更快,更容易阅读。
谢谢
答案 0 :(得分:2)
如果我理解正确,请使用IN
代替=
SELECT SUM(qty) FROM paid WHERE idDoc IN (SELECT id FROM doc WHERE this=that)
答案 1 :(得分:1)
要检查条件数组的值,必须使用IN
子句,例如:
SELECT SUM(qty)
FROM paid
WHERE idDoc IN (SELECT id FROM doc WHERE this=that)
答案 2 :(得分:1)
听起来您可以为此使用INNER JOIN:
SELECT SUM(qty)
FROM paid
INNER JOIN doc ON paid.idDoc = doc.id
WHERE this = that