我必须创建一些学生完成报告.每个学生都属于一个客户.以下是表格(此问题已简化).
CREATE TABLE `clients` (
`clientId` int(10) unsigned NOT NULL auto_increment,
`clientName` varchar(100) NOT NULL default '',
`courseNames` varchar(255) NOT NULL default ''
)
Run Code Online (Sandbox Code Playgroud)
该courseNames字段包含以逗号分隔的课程名称字符串,例如"AB01,AB02,AB03"
CREATE TABLE `clientenrols` (
`clientEnrolId` int(10) unsigned NOT NULL auto_increment,
`studentId` int(10) unsigned NOT NULL default '0',
`courseId` tinyint(3) unsigned NOT NULL default '0'
)
Run Code Online (Sandbox Code Playgroud)
courseId此处的字段是clients.courseNames字段中课程名称的索引.因此,如果客户courseNames是"AB01,AB02,AB03",并且courseId注册的是2,则学生在AB03.
有没有办法可以在包含课程名称的这些表上进行单一选择?请记住,将有来自不同客户的学生(因此具有不同的课程名称,并非所有课程名称都是连续的,例如:"NW01,NW03")
基本上,如果我可以拆分该字段并从结果数组中返回单个元素,那将是我正在寻找的.这就是我在魔法伪代码中的意思:
SELECT e.`studentId`, SPLIT(",", c.`courseNames`)[e.`courseId`]
FROM ...
Run Code Online (Sandbox Code Playgroud) mysql ×1