Bagaimana untuk menyatukan rekod dalam satu baris - MYSQL
P粉475315142
P粉475315142 2023-09-09 09:11:47
0
1
503

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粉475315142
P粉475315142

membalas semua(1)
P粉476046165

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan