elfaus Posté 8 Juin 2013 Posté 8 Juin 2013 Salut à tous, j'essaye d'optimiser un script php afin de n'avoir à réaliser qu'une seule requête et récupérer toutes les informations nécessaires. J'ai découvert il y a peu group_concat mais je ne suis parvenu à le faire fonctionner que sur un seul champ. Soit les deux tables sources suivantes : Heroes +----+-----------+------------+ | id| name_fr | name_us | +----+-----------+------------+ | 1 | ababab | ababab | | 3 | efefef | efefef | +----+-----------+------------+ Schools +----+-----------+-----------+ | id | name_fr | name_us | +----+-----------+-----------+ | 3 | ababab | ababab | | 5 | cdcdcd | cdcdcd | | 9 | efefef | efefef | +----+-----------+-----------+ Soit la table relationnelle suivante : Heroes_Schools +----+----+ | hid|sid | +----+----+ | 1 | 3 | | 1 | 5 | | 3 | 9 | +----+----+ L'idée, est de faire en sorte de récupérer un résultat similaire à celui-ci +----+-----------+-----------+--------------------------------------------------+ | id| name_fr | name_us | schools | +----+-----------+-----------+--------------------------------------------------+ | 1 | ababab | ababab | 3, ababab, ababab; 5, cdcdcd, cdcdcd | | 3 | efefef | efefef | 9, efefef, efefef | +----+-----------+-----------+--------------------------------------------------+ Afin de pouvoir par la suite faire un traitement de tableau en php et passer le contenu de schools en paramètre d'une autre class que celle réalisant la requête et stockant les information id, name_fr et name_us Pour l'instant j'ai ça : SELECT mch.id, mch.name_fr, mch.name_us, GROUP_CONCAT(mcs.id) AS schools_id, GROUP_CONCAT(mcs.name_fr) AS schools_name_fr, GROUP_CONCAT(mcs.name_us) AS schools_name_us FROM mom_cards_heroes AS mch LEFT JOIN mom_cards_heroes_schools AS mchs ON mch.id = mchs.heroesid LEFT JOIN mom_cards_schools AS mcs ON mchs.schoolid = mcs.id WHERE mch.`publish` = 1 GROUP BY mch.id ORDER BY mch.factionid, mch.name_fr ASC Mais pas suffisant x)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant