我的问题详情:
记录表
用户名提供商名额金额日期
offername就是这样的
xxx
yyyy
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金额日期
user1 xxxx xxx xxxx
user1 xxxx xxx xxxx
user1 xxxx xxx xxxx
user1 yyyy yyyy yyyy
user1 yyyy yyyy yyyy
user1 yyyy yyyy yyyy
等等。
我想要像这样的输出
用户名offername金额日期
user1 xxxx xxx xxxx
user1 yyyy yyyy yyyy
user1 zzz zzz zzzz
user2 xxxx xxx xxxx
user2 yyyy yyyy yyyy
user2 zzz zzz zzzz
userN xxxx xxx xxxx
用户N yyyy yyyy yyyy
userN zzz zzz zzzz
澄清:
此表包含用户完成的不同公司的优惠。 我需要这样一种方式:如果用户1完成了来自offername xxx的10个offer和来自offername yy的5个,那么输出应该只显示user1对公司xx的一次,并显示其xxx公司的计数,依此类推。 / p>
我希望我澄清了这个问题。
接受答案后有效的解决方案:
$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
答案 0 :(得分:1)
试试这个,开始吧:
$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, logs.offername, logs.date
ORDER BY logs.offername DESC
");
答案 1 :(得分:0)
use DISTINCT Modifiers. DISTINCT logs.*