Comment palier à l'utilisation des vues [Fermé]

Signaler
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
-
kakashi05
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
-
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


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.
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
32
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 :-)
Utilisateur anonyme
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.
kakashi05
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
32
Merci pour l'information je vous tiendrai informé de la suite
Utilisateur anonyme
De rien
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
32
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