expression rationnelle par php pour requete mysql
Bonjour,
Je souhaite extraire des elements d'une requetes SQL.
Mon but est de recuperer les elements avant le from de la requete et les elements après le from. Mais la requete comporte plusieurs from et je ne souahites recuperer les infos que du 1er from.
Voici une requete exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SELECT T.ID,T.AGT_NOM,T.AGT_PRE,ROUND( SUM( T.CAE ) , 2 ),ROUND( SUM( T.CAR ) , 2 )
FROM
(
(SELECT agent_id ID, agent_nom AGT_NOM, agent_prenom AGT_PRE,
(SELECT SUM( action_even_ca ) FROM action_even WHERE action_even_vente = 'N' AND action_even_agent_affect = agent_id ) CAE
FROM agent,action_even
WHERE action_even_agent_affect = agent_id
GROUP BY agent_id ORDER BY agent_nom, agent_id)
UNION ALL
(SELECT agent_id ID, agent_nom AGT_NOM, agent_prenom AGT_PRE,
(SELECT SUM( affaire_ca_realise ) FROM affaire WHERE affaire_vente = 'N' AND affaire_agent_affect = agent_id ) CAE
FROM agent,affaire
WHERE affaire_agent_affect = agent_id
GROUP BY agent_id ORDER BY agent_nom, agent_id)
) T GROUP BY 1; |
Mon but est de recuperer:
Citation:
T.ID,T.AGT_NOM,T.AGT_PRE,ROUND( SUM( T.CAE ) , 2 ),ROUND( SUM( T.CAR ) , 2 )
Et aussi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| (
(SELECT agent_id ID, agent_nom AGT_NOM, agent_prenom AGT_PRE,
(SELECT SUM( action_even_ca ) FROM action_even WHERE action_even_vente = 'N' AND action_even_agent_affect = agent_id ) CAE
FROM agent,action_even
WHERE action_even_agent_affect = agent_id
GROUP BY agent_id ORDER BY agent_nom, agent_id)
UNION ALL
(SELECT agent_id ID, agent_nom AGT_NOM, agent_prenom AGT_PRE,
(SELECT SUM( affaire_ca_realise ) FROM affaire WHERE affaire_vente = 'N' AND affaire_agent_affect = agent_id ) CAE
FROM agent,affaire
WHERE affaire_agent_affect = agent_id
GROUP BY agent_id ORDER BY agent_nom, agent_id)
) T GROUP BY 1; |
Voici un essai qui ne fonctionne pas :
Code:
preg_match("/SELECT(.*^(?:FROM))/i",$query2,$parts)
J'ai fais pleins d'essais et je desespère.
Donc j'en demande aux pros des expressions rationnelles.
Merci pour vos reponses.