[英]MYSQL - Grab value from different row and return them on the same row
[英]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.