Heim > Fragen und Antworten > Hauptteil
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粉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