【发布时间】:2019-04-29 18:42:58
【问题描述】:
我有用户评分,我想显示每个用户的评分总数。我有 2 个表:用户和反馈。我在 USERS 表中有 4 个用户。在 FEEDBACK 表(由申请人 ID 和 app_experience 列组成)中,我有每个用户的评分。但是,我对每个人都有几个评分。
$sql4 = "
SELECT SUM(app_experience) as app_experience
, applicant_id
FROM feedback f
JOIN users u
ON u.id=f.applicant_id
GROUP
BY feedback.applicant_id
";
$res4 = mysqli_query($db,$sql4) or die(mysqli_error($db));
这是我的输出,但它只打印了 2 个用户,因为在表 FEEDBACK 2 中的用户还没有任何反馈:
foreach ($res4 as $row)
{
echo "".$row['applicant_id']."----".$row['app_experience']."";
echo "<br>";
}
我的问题是如何输出所有 4 个用户,我想在每个用户旁边显示评分总数。
我正在做这样的事情,但我不知道在下面的代码中在哪里添加上面的 foreach 循环。你有什么想法吗?:
$sql2 = "SELECT * FROM users";
$res2 = mysqli_query($db,$sql2) or die(mysqli_error($db));
while($row2 = mysqli_fetch_assoc($res2))
{
$id = $row2['id'];
$name = $row2['name'];
}
【问题讨论】:
-
使用
LEFT JOIN而不是INNER JOIN和COALESCE(SUM(app_experience), 0) -
好的,但是我应该把foreach循环和while循环放在哪里?