使用1个查询而不是2个
来实现此目的的正确语法是什么?$result = mysql_query(SELECT * FROM users);
while($row = mysql_fetch_array($result)){
$result = mysql_query(SELECT SUM(balance) FROM users_account WHERE uid=$row[id]);
}
答案 0 :(得分:1)
您应该内联接表和按用户表分组。 您可以在SELECT子句中添加更多列,记得在GROUP BY子句中添加相同的列以获取标准SQL语句。
$query = " SELECT u.uid, SUM(a.balance)
FROM users_account a
INNER JOIN users u
ON u.uid = a.uid
GROUP BY u.uid";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
...
如果需要,安排$ query连接字符串。
答案 1 :(得分:0)
$result = mysql_query(SELECT a.*, b.SUM(balance) AS user_balance FROM users a, users_account b WHERE uid=$row[id]);
答案 2 :(得分:0)
这将返回user_account表中包含用户信息的所有记录: -
SELECT SUM(ua.balance),u.*,ua.* FROM users_account ua
left join users u on ua.users_account=u.id
GROUP BY u.id