Heim  >  Fragen und Antworten  >  Hauptteil

So vereinheitlichen Sie Datensätze in einer Zeile – MYSQL

Ich habe eine teacher 表,还有一个 phone Tabelle, in der die Verknüpfung über die ID der Person erfolgt. Wenn ich die Telefonnummern jedes Professors nachschlage, sieht das so aus:

(SELECT
       T.ID_TEACHER,
       P.PHONE,
       P.NUMBER 
FROM TEACHER T LEFT JOIN PHONES P 
ON P.IDPERSON = T.ID_TEACHER)
ID_TEACHER Telefon ANZAHL
1 1 xxxxxxx
1 2 xxxxxxxxx
1 3 xxxxxxx
2 1 xxxxxxx

Ich möchte jedoch, dass es so angezeigt wird:

ID_TEACHER Telefon ANZAHL Telefon ANZAHL Telefon ANZAHL
1 1 xxxxx 2 xxxxx 3 xxxxx
2 1 xxxxxxxxx

Was soll ich tun? Ich verwende MYSQL. Ich habe keine Lösung gefunden.

P粉475315142P粉475315142376 Tage vor399

Antworte allen(1)Ich werde antworten

  • P粉476046165

    P粉4760461652023-09-10 00:56:25

    您需要使用条件聚合:

    尝试以下操作:

    SELECT
        T.ID_TEACHER,
        MAX(CASE WHEN P.PHONE = 1 THEN P.PHONE ELSE NULL END) AS PHONE1,
        MAX(CASE WHEN P.PHONE = 1 THEN P.NUMBER ELSE NULL END) AS NUMBER1,
        MAX(CASE WHEN P.PHONE = 2 THEN P.PHONE ELSE NULL END) AS PHONE2,
        MAX(CASE WHEN P.PHONE = 2 THEN P.NUMBER ELSE NULL END) AS NUMBER2,
        MAX(CASE WHEN P.PHONE = 3 THEN P.PHONE ELSE NULL END) AS PHONE3,
        MAX(CASE WHEN P.PHONE = 3 THEN P.NUMBER ELSE NULL END) AS NUMBER3
    FROM TEACHER T
    LEFT JOIN PHONES P ON P.IDPERSON = T.ID_TEACHER
    GROUP BY T.ID_TEACHER

    Antwort
    0
  • StornierenAntwort