gpt4 book ai didi

mysql - SQL 'COUNT' 函数不工作

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:57 25 4
gpt4 key购买 nike

我想要一个 SQL 查询返回总行数。以下是我的查询。

SELECT COUNT(*) AS tot_std  
FROM `student_main` AS sm,
`student_subjects` AS stds,
`sub_subjects` AS ss
WHERE stds.`student_id` = sm.`studen. t_id`
AND stds.`subs_id` = ss.`subs_id`
AND stds.`subs_id` = 1
AND sm.`std_postcode` LIKE '%HA02AN%'
GROUP BY stds.`student_id`

查询连接三个表:1) student_main 是主表,存储学生信息。2) sub_subjects 这是存储主题/类(class)信息的主表3) student_subjects 该表由student_id 和subs_id 作为外键组成,显示学生正在修读的科目。

以下是 student_subjects 表的屏幕截图。

enter image description here

现在,当我运行查询时,它应该在输出中显示 3,因为共有 3 名学生正在学习 ID 为 1 的主题。但查询却给我这样的输出:

enter image description here

请帮助。

最佳答案

删除 GROUP BY。并学习正确的显式 JOIN 语法:

SELECT COUNT(*) AS tot_std  
FROM `student_main` sm JOIN
`student_subjects` stds
ON stds.`student_id` = sm.`studen. t_id` JOIN
`sub_subjects` ss
ON stds.`subs_id` = ss.`subs_id`
WHERE stds.`subs_id` = 1 AND sm.`std_postcode` LIKE '%HA02AN%';

简单规则:永远不要FROM 子句中使用逗号。 *始终使用带有 ON 子句的显式 JOIN 语法。

关于mysql - SQL 'COUNT' 函数不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38697095/

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