繁体   English   中英

PHP MySQL将来自不同行的单元格组合在一起

[英]PHP MySQL combine cells from different row with same value

我有一个数据库,其中包含身份证号码,姓名,课程期限和教师姓名。 每行包括学生的ID,姓名,期间和教师,这意味着每个学生有多行。 那不是我的问题。 我的问题是有些班级列出了两个教师......这意味着1个班级有两个独立的行,每个教师一个。 不幸的是,我无法控制数据的格式,因为它是从没有很多格式选项的系统导出的。

这是一个例子,注意第23和24行是针对同一个班级和学生的,但唯一不同的是教师姓名。

pk  id      last    first   period  teacher
14  12345   Smith   John    3       HARRIS
15  12345   Smith   John    8       LEAL
17  12345   Smith   John    1       HOUSTON
23  56789   Doe     Jane    8       MERCER
24  56789   Doe     Jane    8       RUIZ
25  56789   Doe     Jane    3       BECK
26  56789   Doe     Jane    1       STEED

我想将具有相同句号和学号的两行合并为一行。 所有信息都保持不变,除了两个不同的教师姓名将被合并为“Mercer&Ruiz”之类的东西。 理想情况下,最终结果看起来像,

24  56789   Doe Jane    8   MERCER & RUIZ

这可能使用PHP和/或MySQL吗? 我不是在寻找任何人编写整个代码或任何东西。 我似乎无法想到实现它的方法。 我对任何方向/指示方式都很满意。

一如既往,感谢您的时间和帮助。

SELECT  MAX(pk), 
        ID,
        `last`, 
        `first`,
        GROUP_CONCAT(teacher SEPARATOR ' & ') teachers
FROM    tableName
// WHERE clause here...
GROUP BY `last`, `first`, `Period`
// ORDER BY clause here....

SOOURCE

SELECT pk,id,last,first,period GROUP_CONCAT(teacher) 
FROM table 
GROUP BY id, first,last,period

应该做你需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM