【发布时间】:2015-02-13 04:54:56
【问题描述】:
我的问题详情:
日志表
userid offername 金额 uamount offertitle 日期
offername 是这样的
xxx
年年
zzzz
我的查询:
$sqloffers=mysql_query("SELECT user.username, logs.* FROM logs
INNER JOIN user ON user.userid = logs.userid ORDER BY logs.offername DESC ");
显示结果
<?php
while($row = mysql_fetch_array($sqloffers))
{
echo "<tr> ";
echo "<td>" .$row[username] . "</td>";
echo "<td>" .$row[offername] . "</td>";
echo "<td>" .$row[amount] . "</td>";
echo "<td>" .$row[uamount] . "</td>";
echo "<td>" .$row[offertitle] . "</td>";
echo "<td>" .$row[date] . "</td>";
}
echo "</tr> " ;
?>
我希望输出由每个用户名,aginst offername 分隔。
现在我就是这样出去的
用户名 offername 金额 日期
用户 1 xxxx xxx xxxx
用户 1 xxxx xxx xxxx
用户 1 xxxx xxx xxxx
user1 yyyy yyyy yyyy
user1 yyyy yyyy yyyy
user1 yyyy yyyy yyyy
等等。
我想要这样的输出
用户名 offername 金额日期
用户 1 xxxx xxx xxxx
user1 yyyy yyyy yyyy
user1 zzz zzz zzzz
用户 2 xxxx xxx xxxx
user2 yyyy yyyy yyyy
user2 zzz zzz zzzz
用户 N xxxx xxx xxxx
用户N yyyy yyyy yyyy
userN zzz zzz zzzz
澄清:
此表包含用户完成的不同公司的报价。 我需要这样一种方式,如果用户 1 完成了来自 offername xxx 的 10 个报价,以及来自 offername yy 的 5 个报价,那么输出应该只针对公司 xx 显示 user1 1 次,并显示其对 xxx 公司的计数,依此类推。
我希望我已经澄清了这个问题。
接受答案后有效的解决方案:
$sqloffers=mysql_query("
SELECT user.username, logs.offername, logs.date, SUM(logs.uamount) as uamount, SUM(logs.amount) as amount ,count(*) as counter
FROM logs
INNER JOIN user
ON user.userid = logs.userid
GROUP BY user.username
ORDER BY logs.offername DESC
【问题讨论】:
-
欢迎来到 Stackoverflow。问题更清楚。