4

ID番号、名前、クラス期間、および教師名を含むデータベースがあります。各行には、生徒の ID、名前、期間、および教師が含まれます。つまり、生徒ごとに複数の行があります。それは私の問題ではありません。私の問題は、一部のクラスには 2 人の教師がリストされていることです...つまり、1 つのクラス期間に 2 つの別々の行があり、各教師に 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

学期番号と学生名が同じ2行を1行にまとめたいです。2 人の異なる教師の名前が "Mercer & Ruiz" のように結合されることを除いて、すべての情報は同じままです。理想的には、最終結果は次のようになります。

24  56789   Doe Jane    8   MERCER & RUIZ

これは PHP や MySQL を使用して可能ですか? 私は、コード全体や何かを書く人を探しているわけではありません。私はそれを達成する方法を考えることができないようです。これについての方向性/指示があれば幸いです。

いつものように、あなたの時間と助けに感謝します.

4

2 に答える 2

6
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....

ソース

于 2013-01-17T02:31:16.930 に答える
1
SELECT pk,id,last,first,period GROUP_CONCAT(teacher) 
FROM table 
GROUP BY id, first,last,period

あなたが必要とすることをすべきです。

于 2013-01-17T02:31:45.323 に答える