使用mysql和php创建特定查询
我需要帮助创建一个特定的查询,下面是我的存款表的一个示例,empId是一个外键,它引用了我的“users”表的主键,即“userId” 注:此处未显示用户表使用mysql和php创建特定查询,php,mysql,sql,Php,Mysql,Sql,我需要帮助创建一个特定的查询,下面是我的存款表的一个示例,empId是一个外键,它引用了我的“users”表的主键,即“userId” 注:此处未显示用户表 mysql> SELECT * FROM deposit -> ; +------------+---------------+---------+-------------+-------------+-------------+-------+ | CheckId | jobId | pay
mysql> SELECT * FROM deposit
-> ;
+------------+---------------+---------+-------------+-------------+-------------+-------+
| CheckId | jobId | payRate | jobLocation | hours | date_paid | empId |
+------------+---------------+---------+-------------+-------------+-------------+-------+
| 1512 | entertainment | 12 | store1 | 10.00 | 2013-03-02 | 1 |
| 1510 | entertainment | 12 | store1 | 8.00 | 2013-03-01 | 1 |
| 1507 | retail | 10 | store1 | 8.00 | 2013-03-18 | 1 |
| 1506 | retail | 10 | store1 | 20.00 | 2013-03-19 | 1 |
+------------+---------------+---------+-------------+-------------+-------------+-------+
我想要的是计算所有特定jobId的所有小时的总和,在本例中,如果我
正确地查询它将如下所示:
+---------------+---------------+---------+
| payID | payRate | hours |
+---------------+---------------+---------+
| entertainment| 12 | 18 |
| retail | 10 | 28 |
+---------------+---------------+---------+
在本例中,只有两个jobid,但它可能有两个以上
这是我的查询,它只显示一个payId,所以我需要帮助修复它
还要注意,电子邮件是“我的用户”表的一个属性
<table>";
$query = "SELECT jobId, payRate, SUM(hours) AS 'All_Hours'
FROM users INNER JOIN deposit ON userId = empId
WHERE users.email = '" . $_SESSION['email'] ."'
GROUP BY jobId,payRate";
if (!$result) { //if the query failed
echo("Error, the query could not be executed: " .
mysqli_error($db) . "</p>");
mysqli_close($db); //close the database
} //by now we have made a successful query
while ($row = mysqli_fetch_assoc($result)){
echo "<tr><td>" .$row['jobId'] . "</td>
<td>" .$row['payRate'] . "</td>
<td>" .$row['All_Hours'] . "</td>
</tr>";
}
echo"</table>
”;
$query=“选择作业ID、工资率、总(小时)作为“所有小时”
来自userId=empId上的用户内部加入存款
其中users.email=“$”会话['email']。“'
按jobId、payRate分组”;
if(!$result){//如果查询失败
echo(“错误,无法执行查询:”。
mysqli_错误($db)。“”;
mysqli_close($db);//关闭数据库
}//现在我们已经成功地进行了查询
while($row=mysqli\u fetch\u assoc($result)){
回显“.$row['jobId']”
“$row['payRate']”
“$row[‘所有小时’]”
";
}
回声“
您忘记在查询中添加GROUP BY
子句,导致结果中只有一条记录
SELECT jobId, payRate, SUM(hoursWorked) AS 'All_Hours'
FROM users INNER JOIN paycheck ON userId = empId
WHERE users.email = 'session_email_here'
GROUP BY jobId, payRate
在存款台上
SELECT jobId, payRate, sum(hours) FROM deposit
group by 1, 2
我还建议您将其关系化一点:
jobId
和jobLocation
需要移动到新表中我编辑了我的查询,但现在它没有显示任何内容,我编辑的方式有什么问题吗?nvm我在phpmyadmin上运行了它,它工作了,但我的代码中的某个地方有语法错误