我有一张这样的 table
学生表
ID | Name | Subject |
1 | foo | 1,2,3 |
主题表
ID | Subject_name |
1 | Math |
2 | Science |
3 | History |
我试过这个
"SELECT * FROM student LEFT JOIN subject ON student.id = subject.id"
但是他们是一个错误
我期望的是获取学生表中的所有 subject_name
最佳答案
您需要使用FIND_IN_SET查找 GROUP_CONCAT 范围内的值返回以逗号分隔值的行。
SELECT s.id, s.Name, GROUP_CONCAT(t.Subject_name)
FROM student s
INNER JOIN subject t
ON FIND_IN_SET(t.ID, s.subject)
GROUP BY s.id, s.Name
这是一个Demo .
但是,还请考虑更改表的架构,因为目前这不是理想的设计。
关于mysql - Sql 一列中有多个 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48616069/