gpt4 book ai didi

php - 使用 COUNT (PHP MySQL) 添加行号并显示总数

转载 作者:行者123 更新时间:2023-11-29 01:01:52 24 4
gpt4 key购买 nike

我正在尝试运行一个查询,将一个类(class)的科目总数相加。一个类(class)有很多科目。在教师(用户表)和类(class)之间有一个“teachersclasses”表。这些原则听起来很简单,但我在让我的页面显示每个类(class)的科目数量(与老师直接相关)时遇到了一些麻烦

这就是我到目前为止所拥有的,尝试将 COUNT 与嵌套的 SELECT 一起使用:

SELECT (SELECT count(*) FROM subjects WHERE subjects.classid = class.classid) AS total_subjects, class.classname, class.classid 

来自类

然后我调用“num_subjects”以在 while 循环中显示总数:

            <?php echo $row['total_subjects']?>

从上面,我收到了一个类(class)的总科目,但在同一表行(一个类(class))和我的另一个 while 循环不再运行,它返回与老师相关的所有类(class):(。 .. 现在有点乱!

我知道要返回特定教师的类(class),我可以在“teacherid” session 中做一个额外的 WHERE 子句,但我认为我的查询对我来说太复杂了,到处都会出现错误。任何人都可以快速解决这个问题!非常感谢

最佳答案

您的查询可能不是最优的。将其重写为连接可能是个好主意:

SELECT
total_subjects,
class.classname,
class.classid
FROM class
JOIN (
SELECT classid, count(*) AS total_subjects
FROM subjects
GROUP BY classid
) AS T1
ON T1.classid = class.classid

至于你的问题,你不需要两个循环。这是一个包含三列的单一结果集,正如我的重写所清楚显示的那样。只需一个循环即可读取所有结果。

关于php - 使用 COUNT (PHP MySQL) 添加行号并显示总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com