繁体   English   中英

我如何嵌套此MySQL选择查询?

[英]How Would I Nest This MySQL Select Query?

我有一个包含用户付款明细的表,另一个有用户列表的表。 我想从付款明细中获取所有用户的余额,但仅适用于未被禁止的用户(在users表中的一列)。

我是嵌套查询的新手,所以不确定如何执行此操作?

到目前为止,这是我尝试过的...

mysql_query("
    SELECT SUM(balance) 
    FROM payment_details 
    WHERE (SELECT ban 
           FROM users 
           WHERE username=username
          ) != '1'
")

注意:用户名是两个表中的一列。

上面的查询不起作用。

回顾一下:有两个表:payment_details和users。 我想为所有未被禁止的用户添加余额列。

不要在这里使用子查询。 而是使用JOIN

SELECT SUM(payment_details.balance) FROM payment_details
JOIN users ON payment_details.username = users.username
WHERE ban != '1' 

同意,联接可能是您想要的。

但是,要回答特定的问题,您可以尝试执行以下查询:

SELECT SUM(payment_details.balance)
    FROM payment_details
    WHERE payment_details.username in (
        SELECT users.username
            FROM users WHERE ban != '1'
    );

请注意,从这个问题尚不清楚,您是否想要每个用户的总和,还是所有用户的总和。 上面的查询提供了后者-未按用户分组。

查询是:

SELECT SUM(balance) FROM payment_details JOIN users ON payment_details.username=users.username WHERE users.ban !='1' group by payment_details.username

顺便说一句,使用用户ID会比使用用户名好得多

暂无
暂无

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

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