IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Sous-requête dans une vue


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Sous-requête dans une vue
    Bonjour,

    J'essaie de créer une vue mais j'utilise une sous-requête donc, je me retrouve avec cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    View's SELECT contains a subquery in the FROM clause, SQL State: HY000, Error Code: 1349
    Et voici une version allégée de ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Create view FACON as
    select	DISTINCT
    	FAM.LIBCEN,
    	COMP.NOCDET
    from	FAMILLE as FAM, 
            (select CMP.CODE	 as  NOCDET
    		from COMPOSANT as CMP
    			left outer join TYPE_COMPOSANT as TYP2 on CMP.CODE_TYPE_COMPOSANT=TYP2.CODE_TYPE_COMPOSANT
    			left outer join FOURNISSEUR_COMPOSANT as FOU1 on CMP.CODE_FOURNISSEUR_COMPOSANT=FOU1.CODE_FOURNISSEUR_COMPOSANT) as COMP,
            COULEUR as COM
            left outer join DECISION as TYP on COM.CODE_DECISION=TYP.CODE_DECISION 
    where	(1=1)
    AND FAM.CODE_FAMILLE=COMP.CODE_FAMILLE
    AND FAM.CODE_FAMILLE=COM.CODE_FAMILLE
    Savez-vous comment faire ?

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Après plusieurs recherches sur internet, je trouve qu'il ne parait pas possible de faire des sous-requêtes dans le select de ma vue.
    No subqueries in the from clause
    MySQL have recognised that this particular problem is a design flaw. The select statement cannot contain a subquery in the from clause, it is possible however to use subqueries in other parts of the view definition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create view v_emp as select * from (select emp_id from emps) as emps;
    ERROR 1349 (HY000): View’s SELECT contains a subquery in the FROM clause
     
    create view v_emps as select * from emps where dept_id in 
    (select dept_id from dept);
    Query OK, 0 rows affected (0.03 sec)
    Il est dit sur ce site qu'on peut faire un IN à la place mais cela ne va-t-il pas diminuer la performance de la requête ? N'y a-t-il vraiment pas d'autres solutions ?

    Merci

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bon, finalement, j'ai créé deux vues séparées pour mes deux select .

    Je ne sais pas si c'est la meilleure solution mais, c'est la seule que j'ai trouvée pour le moment.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/03/2011, 18h00
  2. Réponses: 3
    Dernier message: 05/11/2009, 12h09
  3. Afficher des sous-requêtes dans une requête
    Par ZashOne dans le forum Sql*Plus
    Réponses: 6
    Dernier message: 16/04/2008, 10h07
  4. intégré une sous requête dans une requête
    Par Smix007 dans le forum SQL
    Réponses: 13
    Dernier message: 25/06/2007, 11h45
  5. inclure une sous requête dans une requête
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/05/2007, 19h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo