gpt4 book ai didi

mysql查询计数字段

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

我在使用 sql 查询时遇到了一些问题,如果有人能帮助我,那就太好了。所以我有students, participation, courses, places, student_to_courses 这些表。我需要让所有学生都参加特定类(class),我正在处理这个查询

select 
s.name as student_name, c.name as course_name, p.name as place_name
from
student_to_courses s2c,
students_participation sp,
students s,
courses c,
places p

where
s.id = s2c.participation_id AND
s.id = sp.profile_id AND
c.id = s2c.course_id AND
p.id = c.place_id = p.id AND
s2c.course_id = 1

这里是 sqlfiddle

但我需要计算学生在特定位置的次数,例如 student_name, course_name, place_name, | 3 | 。现在我正在使用另一个查询来完成它,我每次都在循环中调用它。但我想知道是否有一种方法可以仅通过单个查询来完成。提前感谢所有愿意帮助我的人。

最佳答案

你可以做一个 COUNT()然后 GROUP BY 剩余的列:

select s.name as student_name, 
c.name as course_name,
p.name as place_name,
count(*)
from students s
inner join student_to_courses s2c on s.id = s2c.participation_id
inner join courses c on c.id = s2c.course_id
inner join places p on p.id = c.place_id
inner join students_participation sp on s.id = sp.profile_id
where s2c.course_id = 1
group by s.name,c.name,p.name

我还将您的联接更改为显式联接,因为它更容易阅读且不易出错。

sqlfiddle demo

关于mysql查询计数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353976/

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