Aller au contenu

group_concat avant mysql 4.1


boulon

Sujets conseillés

Bonjour :)

Je voudrais obtenir le résultat suivant:

Directeur |Statut | Spécialité | Paris | E mail

-----------------------------------------------------------------------------------------------

Michel A. | Directeur | Anthropologie, identité, métissage | non | Michel_AT_e.com

Elsa A. | professeur |Cinéma, Journalisme | oui | Alsa_AT_e.com

Domi B. | Directeur | Littérature, théâtre, cinéma | non | domi_AT_e.com

J'obtiens:

Directeur |Statut | Spécialité | Paris | E mail

-----------------------------------------------------------------------------------------------

Michel A. | Directeur | Anthropologie | non | Michel_AT_e.com

Michel A. | Directeur | identité | non | Michel_AT_e.com

Michel A. | Directeur | métissage | non | Michel_AT_e.com

Elsa A. | professeur |Cinéma | oui | Alsa_AT_e.com

Elsa A. | professeur |Journalisme | oui | Alsa_AT_e.com

Domi B. | Directeur | Littérature | non | domi_AT_e.com

Domi B. | Directeur | théâtre | non | domi_AT_e.com

Domi B. | Directeur | cinéma | non | domi_AT_e.com

J'utilise

SELECT *
FROM chercheur AS t1, appartenanceED AS t2, ecoleDoctorale AS t3,statutChercheur AS t4, chercheurSpecialite AS t5, specialite AS t6
WHERE t1.idChercheur = t2.idChercheur AND t2.idEcoleDoctorale = t3.idEcoleDoctorale AND t1.idStatutChercheur = t4.idStatutChercheur AND t1.idChercheur = t5.idChercheur AND t5.idSpecialite = t6.idSpecialite AND t3.numeroEcoleDoctorale =122 AND t1.nature = 'enseignant chercheur'
ORDER BY t1.nom
LIMIT 0, 30 " ;

Pour éviter cela, il faudrait que j'utilise GROUP_CONCAT() dans mysql de cette façon:

SELECT *
GROUP_CONCAT(DISTINCT t6.nomChercheurSpecialite
ORDER BY nomChercheurSpecialite ASC SEPARATOR ",")
FROM chercheur AS t1, appartenanceED AS t2, ecoleDoctorale AS t3,statutChercheur AS t4, chercheurSpecialite AS t5, specialite AS t6
WHERE t1.idChercheur = t2.idChercheur AND t2.idEcoleDoctorale = t3.idEcoleDoctorale AND t1.idStatutChercheur = t4.idStatutChercheur AND t1.idChercheur = t5.idChercheur AND t5.idSpecialite = t6.idSpecialite AND t3.numeroEcoleDoctorale =122 AND t1.nature = 'enseignant chercheur'
GROUP BY t1.nom
LIMIT 0, 30 " ;

MAIS LE SERVEUR QUI HEBERGE LE SITE EST EN MYSQL 4.0

ET LA FONCTION GROUP_CONCAT() n'existe qu'à partir de mysql 4.1

Ma question: comment obtenir le même résulatat avec du PHP, en tenant compte de

la version MYSQL 4.0 et PHP 4?

Merci

Modifié par boulon
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...