MySql在另一个选择里面选择?

Cri*_*sty 9 mysql select

有没有办法做到这一点?

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=(SELECTwhere 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)


oez*_*ezi 7

只要子选择每次只返回一行,您查询就可以了.

如果返回的行数更多,则必须将查询更改为:

[...] WHERE id IN (SELECT [...]
Run Code Online (Sandbox Code Playgroud)

注意:在你的情况下,像其他人建议的简单内部连接会更加可更新(并且可能更快一点) - 但你所写的内容绝对可以(总有多种方法可以获得所需的结果 - 以及现在总是容易告诉一个人是"最好的";-))