gpt4 book ai didi

mysql - 一次选择中的行数和值

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

我有 2 个表的表结构

首先是有ID的老师,其次是有ID的学生;每个学生只有一个老师,所以在学生表中有一列是老师的ID。

目前我正在使用这个选择:

SELECT t.`id`, t.`name`, count(ti.`identificator`) as student_count FROM `teachers` t
LEFT JOIN `students` ti ON t.`id` = ti.`teacher_id`
GROUP BY t.`id`"

我得到的结果是这样的:

1 | Jack   | 22
2 | Daniel | 29

是否可以一次选择显示所有分配的学生?像这样:

1 | Jack   | 22 | Student1
1 | Jack | 22 | Student2
.
.
.
2 | Daniel | 29 | Student25

我希望我的问题是清楚的,我知道我可以在两个选择中做帽子,或者在一个中做帽子并用 php 计数,但我正在尝试从 MySQL 中做到这一点。

谢谢,伙计们……女士们:)

最佳答案

为了得到你想要的,你需要一个用于计数的子选择:

SELECT
t.`id`,
t.`name`,
student_count.`count`,
s.`name`
FROM `teachers` t
LEFT JOIN `students` s ON t.`id` = s.`teacher_id`
LEFT JOIN (
SELECT
ti.`teacher_id`,
count(*) as count
FROM `students` ti
GROUP BY ti.`teacher_id`) student_count ON t.`id` = student_count.`teacher_id`

关于mysql - 一次选择中的行数和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22302723/

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