Comment unifier les enregistrements sur une seule ligne - MYSQL
P粉475315142
P粉475315142 2023-09-09 09:11:47
0
1
485

J'ai une table teacher 表,还有一个 phone où le lien se fait par l'identifiant de la personne. Quand je recherche le numéro de téléphone de chaque professeur, cela ressemble à ceci :

(SELECT
       T.ID_TEACHER,
       P.PHONE,
       P.NUMBER 
FROM TEACHER T LEFT JOIN PHONES P 
ON P.IDPERSON = T.ID_TEACHER)
ID_TEACHER Téléphone NUMÉRO
1 1 xxxxxxx
1 2 xxxxxxxxx
1 3 xxxxxxx
2 1 xxxxxxx

Cependant, je souhaite qu'il s'affiche comme ceci :

ID_TEACHER Téléphone NUMÉRO Téléphone NUMÉRO Téléphone NUMÉRO
1 1 xxxxxx 2 xxxxxx 3 xxxxxx
2 1 xxxxxxxxx

Que dois-je faire ? J'utilise MYSQL. Je n'ai pas trouvé de solution.

P粉475315142
P粉475315142

répondre à tous(1)
P粉476046165

Vous devez utiliser l'agrégation conditionnelle :

Essayez ce qui suit :

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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!