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

Langage SQL Discussion :

Simplifier des requêtes


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Par défaut Simplifier des requêtes
    Bonjour,

    A mon fichier des effectifs des écoles de l'année 2009 je dois ajouter
    la colonne des effectifs de la table 2010.
    Ma première requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Tab09.NUMEtab, Tab09.Niveau, Tab09.Eff2009, Tab10.Eff2010]
    FROM Tab09 INNER JOIN Tab10 ON (Tab09.NUMEtab = Tab10.NUMEtab) AND
    (Tab09.Niveau = Tab10.Niveau);
    Mais comme des écoles ou des niveaux ont disparu en 2010 et que des
    écoles ou des niveaux ont été créés en 2010, cette requête ne va
    garder que les écoles et niveaux communs aux 2 tables.
    Ce que je fais : je crée une requête LEFT JOOIN et une RIGHT JOIN,
    ensuite une requête UNION; soit 4 requêtes en tout.

    Est-il possible de faire tout ça en une seule requête (ou minimiser) ?
    Merci d'avance,

    Eric.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Il y a un problème de modélisation.

    il aurait été judicieux d'avoir (au moins de table), une sur la "classe" et une concernant l'année
    t_Classe
    id_classe PK
    Niveau

    t_annee
    id_annee PK
    id_classe FK
    Annee
    Eff

    et bien des problèmes auraient été résolues

    Possible à faire

    sinon pensez au CROSS JOIN

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour

    il y a effectivement peut etre un problème de modélisation.

    Cependant, vous pouvez utiliser FULL OUTER JOIN afin de faire ceci en une seule requête

Discussions similaires

  1. simplifier une requête avec des 'OR'
    Par Spaccio dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/05/2008, 10h06
  2. Recherche ibrairie pour éxécuter des requêtes SQL via C++
    Par daemon dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 14/06/2004, 10h28
  3. log des requêtes sous sybase 10
    Par VsMetal dans le forum Sybase
    Réponses: 3
    Dernier message: 03/05/2004, 14h09
  4. Fichier log des requêtes d'une bdd
    Par Sub0 dans le forum Administration
    Réponses: 4
    Dernier message: 22/03/2004, 14h12
  5. formatage des requêtes sous psql
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/02/2004, 11h10

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