有一张表格(课程兴趣)在一个单元格中具有所有值。但是这些值只是id,我想将它们与另一个表(课程)连接在一起,以便我知道它们的名称。
课程兴趣:
MemberID MemberName CoursesInterested
1 Al 1,4,5,6 2 A2 3,5,6 课程表:
CourseId Course
1 MBA 2 Languages 3 English 4 French 5 Fashion 6 IT 所需输出:
MemberID MemberName CoursesInterested
1 Al MBA,French,Fashion,IT 2 A2 English,Fashion,IT 我想在MySql中做一个SQL查询,可以帮助我提取所需的输出。我知道如何以相反的方式(将值连接到一个单元格)来做到这一点,但是我一直在努力寻找一种方法来分离id并交叉连接到另一个表中。
我会感谢社区的任何帮助。谢谢
使用FIND_IN_SET搜索以逗号分隔的列表的东西。
SELECT i.MemberID, i.MemberName, GROUP_CONCAT(c.Course) AS CoursesInterested FROM CourseInterests AS i JOIN Course AS c ON FIND_IN_SET(c.CourseId, i.CoursesInterested) 但是,最好创建一个关系表,而不是将课程存储在单个列中。这种类型的联接无法使用索引进行优化,因此对于大型表而言将非常昂贵。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。