Comment palier à l'utilisation des vues

Fermé
kakashi05 Messages postés 186 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 août 2011 - Modifié par kakashi05 le 24/05/2011 à 10:36
kakashi05 Messages postés 186 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 août 2011 - 25 mai 2011 à 12:33
Bonjour,
Je viens vers vous car j'ai un problème, je m'explique je suis entrain de développer une petite application en php qui aura pour simple bute d'afficher des données enregistrer.
Pour afficher certain donnée j'ai du créer des "vues" (en local) mais lors du déploiement de l'application sur le serveur je me rend compte que la version de Mysql présent sur le poste est une 4.1 l'utilisation des vues n'étant pas prise en compte sur cette version. L'idée serai dans un premier temps trouvé une solution pour palier l'utilisation des vues dans mysql. Et s'il y a pas de solution je verrai avec l'administrateur s'il peuvent le mettre à jour mysql.

Je vous montre la vue que j'ai crée
le nom de la vue: yy_date_de_livraison_dune_demande

SELECT demande_ou_projet.IdDemande,  
demande_se_trouve_dans_etat.Date_entree 
AS PremierDeDate_entree 
FROM demande_ou_projet  
INNER JOIN demande_se_trouve_dans_etat  
ON demande_ou_projet.IdDemande = demande_se_trouve_dans_etat.IdDemande 
WHERE (((demande_se_trouve_dans_etat.Code_etat)="LID")) 
GROUP BY demande_ou_projet.IdDemande 


cette vu je l'utilise dans une autre requête.

SELECT demande_ou_projet.IdDemande, Left(LIBELLE_FORFAIT_BUDGET,20)  
AS Projet, demande_ou_projet.IdClientDemande, Left(Libelle,15)  
AS Intitule, demande_ou_projet.Date_livraison_prevue, 
yy_date_de_livraison_dune_demande.PremierDeDate_entree  
AS Livraison_reelle,  
demande_ou_projet.Date_reception, demande_ou_projet.Type_demande, demande_ou_projet.niveau_de_severite 
FROM sous_systeme  
INNER JOIN ((forfait_budget  
INNER JOIN demande_ou_projet  
ON forfait_budget.ID_FORFAIT_BUDGET = demande_ou_projet.REF_FORFAIT_BUDGET)  
LEFT JOIN yy_date_de_livraison_dune_demande 
ON demande_ou_projet.IdDemande =yy_date_de_livraison_dune_demande.IdDemande)  
ON sous_systeme.IdSousSyst = forfait_budget.REF_SOUS_SYSTEME 
GROUP BY demande_ou_projet.IdDemande,  
Left(LIBELLE_FORFAIT_BUDGET,20), demande_ou_projet.IdClientDemande,  
Left(Libelle,15), demande_ou_projet.Date_livraison_prevue,  
yy_date_de_livraison_dune_demande.PremierDeDate_entree,  
demande_ou_projet.Date_reception, demande_ou_projet.Type_demande,  
demande_ou_projet.niveau_de_severite, sous_systeme.IdAppli 
HAVING (((Left(LIBELLE_FORFAIT_BUDGET,20))="S/M Europe" Or (Left(LIBELLE_FORFAIT_BUDGET,20))="S/M France")  
AND ((yy_date_de_livraison_dune_demande.PremierDeDate_entree) Between "03/02/2011" And "03/02/2011" ) AND ((sous_systeme.IdAppli)="DEV")) 


Avez vous un autre moyen de récrire cette requête?
J'ai pensé au requête imbriqué mais je vous pas trop comment l'utiliser dans mon cas.
Serait il possible de stocker une requête dans une variable en php par exemple?

Je reste à votre entière disposition pour toute questions ou information supplémentaire.
Merci

3 réponses

Utilisateur anonyme
24 mai 2011 à 10:38
Bonjour,

MySQL 4.1 est vraiment moisit. Changez de version.
Je ne sais même pas si MySQL 4.1 gère correctement les sous requêtes.

De toute façon vous aurez besoin d'une jointure sur la table yy_date_de_livraison_dune_demande puisque vous affichez un de ces champs dans le select

Par contre le from je ne le ferais pas sur sous_systeme, mais sur demande_ou_projet, puisque vous n'utilisez aucun champ de sous_systeme dans le select.
0
kakashi05 Messages postés 186 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 août 2011 32
24 mai 2011 à 11:01
Merci neoprog67 pour cette reponse rapide et les précisions apportées sur les requêtes. L'idéal pour moi serai de faire une mise à jour du mysql. J'ai une question Quel peut etre l'impact d'une montée de version de MySQL sur le serveur? A part les points positifs biensur :-)
0
Utilisateur anonyme
24 mai 2011 à 11:18
Impacts sur le serveur, gain de performances...
Après sur les applications MySQL, il peut y avoir des soucis de compatibilité sur certains points, pour ma part, les changements de version MySQL se sont toujours bien passés.
0
kakashi05 Messages postés 186 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 août 2011 32
24 mai 2011 à 11:30
Merci pour l'information je vous tiendrai informé de la suite
0
Utilisateur anonyme
24 mai 2011 à 11:35
De rien
0
kakashi05 Messages postés 186 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 août 2011 32
25 mai 2011 à 12:33
Pour corriger mon problème j'ai du utiliser les tables temporaires à défaut d'une mise à jour de mysql par l'admin :-)

Merci pour ton aide neoprog67
0