Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 18h05   #1
Invité de passage
 
Inscription : avril 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 7
Points : 1
Points : 1
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 :
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.
eric121 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 18h17   #2
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
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
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 18h28   #3
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
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
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h44.


 
 
 
 
Partenaires

Hébergement Web