Rumah > Soal Jawab > teks badan
Saya mempunyai teacher
表,还有一个 phone
jadual di mana pautan adalah mengikut ID orang itu. Apabila saya mencari nombor telefon setiap profesor, ia kelihatan seperti ini:
(SELECT T.ID_TEACHER, P.PHONE, P.NUMBER FROM TEACHER T LEFT JOIN PHONES P ON P.IDPERSON = T.ID_TEACHER)
ID_GURU | Telefon | NOMBOR |
---|---|---|
1 | 1 | xxxxxxx |
1 | 2 | xxxxxxxxx |
1 | 3 | xxxxxxx |
2 | 1 | xxxxxxx |
Namun, saya mahu ia dipaparkan seperti ini:
ID_GURU | Telefon | NOMBOR | Telefon | NOMBOR | Telefon | NOMBOR |
---|---|---|---|---|---|---|
1 | 1 | xxxxxx | 2 | xxxxxx | 3 | xxxxxx |
2 | 1 | xxxxxxxxx |
Apa yang perlu saya lakukan? Saya menggunakan MYSQL. Saya tidak menemui penyelesaian.
P粉4760461652023-09-10 00:56:25
Anda perlu menggunakan pengagregatan bersyarat:
Cuba yang berikut:
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