mysql - 在mysql中为学生获取相关科目
问题描述
我正在尝试获取已使用 MySQL 注册的学生的科目。
学生表:
科目表:
学生注册科目:
我的查询:
select *,(select subject_id from stu_subjects ss where ss.student_id =
s.student_id ) as subject_id
from student s
执行上述查询时,出现以下错误:
所以我修改了我的查询如下(添加限制1):
select *,(select subject_id from stu_subjects ss where ss.student_id =
s.student_id limit 1) as subject_id
from student s
如果您看到输出,我只会得到一个映射到学生的主题。但我需要学生注册的每一门科目。那么我该如何实现呢?
解决方案
尽管 Jagrut Sharma 的回答是正确的,但此版本指定了主题 ID 的分隔符,并使用显式JOIN
而不是隐式的分隔符。
编辑:这似乎,
是默认分隔符,因此您可以从GROUP_CONCAT
. 我将把它留在我的查询中,以便您知道如何在需要时更改它。
SELECT st.student_id, st.student_name
GROUP_CONCAT(sb.subject_id SEPARATOR ',')
FROM stu_subjects sb JOIN student st ON sb.student_id = st.student_id
GROUP BY st.student_id;
推荐阅读
- python - c++评分程序使用python进行类
- asp.net - 在这种情况下不可访问,因为它是朋友
- java - 当公共方法具有私有方法依赖项时如何测试它们
- python - How to plot a linear trendline of datetime vs value with matplotlib and pandas?
- asp.net-core - .NET Core 2.1 How to provide nuget packages to a heavily modularized deployment with shared runtime
- php - 如何在 Laravel 刀片视图中检查 SQL Server 版本
- ios - SwiftUI 视图不会在单独的视图中更新
- jquery - Posting data and pulling the result
- python - 在python中插入/调整ascii艺术?
- cmd - "C:\Users\" 它不被识别为内部或外部命令、可执行程序或批处理文件