有没有办法做到这一点?
SELECT sum(price) from table2 WHERE id=(SELECT theid FROM table1 WHERE user_id="myid")
Run Code Online (Sandbox Code Playgroud)
我有table1,其中包含用户已购买的商品ID.我想计算用户购买的所有商品的总和.
以上查询是否合法?如果没有,那么正确的形式是什么?
Mat*_*att 18
更改where id=(SELECT到where id IN (SELECT
或者你真正想要的可能是:
SELECT sum(price) FROM table2 INNER JOIN table1 ON table2.id = table1.theid WHERE table1.user_id = 'my_id'
Run Code Online (Sandbox Code Playgroud)
只要子选择每次只返回一行,您查询就可以了.
如果返回的行数更多,则必须将查询更改为:
[...] WHERE id IN (SELECT [...]
Run Code Online (Sandbox Code Playgroud)
注意:在你的情况下,像其他人建议的简单内部连接会更加可更新(并且可能更快一点) - 但你所写的内容绝对可以(总有多种方法可以获得所需的结果 - 以及现在总是容易告诉一个人是"最好的";-))