开发者社区> 问答> 正文

SQL查询一个单元格中的多个值?mysql

有一张表格(课程兴趣)在一个单元格中具有所有值。但是这些值只是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并交叉连接到另一个表中。

我会感谢社区的任何帮助。谢谢

展开
收起
保持可爱mmm 2020-05-17 20:30:21 1122 0
1 条回答
写回答
取消 提交回答
  • 使用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

    2020-05-17 20:44:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载

相关镜像