php mysql大于问题

Joh*_*aig 1 php mysql

我有两张桌子:users, images.用户有一个列paid,它是他们支付多少图像进入比赛的数字.图像有entered一个值为0的列表,未输入,1表示输入.我需要每个用户的总和.

我试图查询付费的图像比他们输入的所有用户.但它没有正常工作..继承人打印什么:

bob@example.com        8  2  
jcannon@example.com    3  3  
jrcih@example.com      7  3  
aerwqeerll@example.com 5  1  
ray@example.com        2  3  
Run Code Online (Sandbox Code Playgroud)

您可以看到jcannon @和ray @不应该在列表中,因为pay不大于输入

这是代码:

$SQL = mysql_query("SELECT  *, SUM(images.entered) 
                        FROM users, images 
                        WHERE users.id=images.owner 
                        AND users.paid>'SUM(images.entered)' 
                        GROUP BY users.id  ");

while($sendto=mysql_fetch_array($SQL)){
    print $sendto['email']." ".$sendto['paid']. 
          " ".$sendto['SUM(images.entered)']. "<br>";
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

kni*_*ttl 6

首先除去引号,它们用于文字字符串.其次,您只能将聚合值与HAVING子句进行比较:

… WHERE … GROUP BY … HAVING users.paid >= SUM(images.entered) …
Run Code Online (Sandbox Code Playgroud)

另外我发现使用显式连接语法通常更清楚,而不是WHERE:

SELECT  *, SUM(images.entered)
FROM users
INNER JOIN images
ON users.id = images.owner
GROUP BY users.id
HAVING users.paid > SUM(images.entered)
Run Code Online (Sandbox Code Playgroud)