begin process at 2012 05 27 02:46:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Autre

 > 

Requêtes

 > 

SubQuery et ou condition de jointure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SubQuery et ou condition de jointure

dimanche 16 août 2009 à 13:10:47 | SubQuery et ou condition de jointure

Nicolas___


Bonjour,
je suis étudiant en info et je dois repasser mon cours de SQL , j'ai donc une petite question à vous demandez

(J'y ai déjà répondu, j'aimerais juste être corrigé en cas de faute ;) )

Schéma :


lien : http://www.casimages.com/img.php?i=090816010529675578.png

La question :

Listez les sections dans lesquelles donnent cours des professeurs diplomés en 2000 . NB : chaque section ne doit apparaître qu'une fois.


Code :

En jointure :

Select distinct section
From AnneeEtude , Cours Professeur
Where AnneeEtude.Code = Cours.Annee
and Cours.Prof = Professeur.Matricule
and AnneeDiplome = 2000;



En SubQuery :
Select distinct section
From AnneeEtude
Where Code in Select Annee
From Cours
Where prof in Select matricule
From Professeur
where AnneeDiplome = 2000;


Voila, j'aimerais juste savoir si ces réponses sont bonnes et équivalentes.

Merci

dimanche 16 août 2009 à 13:11:58 | Re : SubQuery et ou condition de jointure

Nicolas___

désolé le schéma ne s'affiche pas , mais le lien est OK pour le moment ;)

dimanche 16 août 2009 à 17:27:46 | Re : SubQuery et ou condition de jointure

nivsql

La premiere semble Bonne dans l'esprit mais la synthaxe est pas terrible (manque une virgule dans la clause from, coquille rien de grave) car pas normative. Les critere de jointure devrait etre exprime dans des clause JOIN et non dans le where ;)

La seconde me semble fausse et surtout au niveau execution sur un SGBD les performance vont etre désastreuses ;)

lundi 17 août 2009 à 19:34:00 | Re : SubQuery et ou condition de jointure

Nicolas___

merci de m'avoir répondu , serais tu me dire ce qu'il ne veut pas avec la solution 2 stp?
elle me semblait bonne pourtant ...

les subquery sont plus lentes ?

Nico

lundi 17 août 2009 à 19:45:16 | Re : SubQuery et ou condition de jointure

nivsql

Autant pour moi, la 2eme solution te rendra le bon resultat aussi, c'est ton modele de donnée qui prete a confusion (attention au nomage des colonnes !)

De maniere général il serait faux de dire que les subquery sont plus lentes. Mais dans ton cas particulier c'est 100 Fois oui.

Ne perd jamais de vue que le SQL et les SGBDR s'appuie sur un modele ensembliste et sur l'algebre qui vas avec (l'algebre relationnel). Essaye de transcire tes 2 requete en algebre relationnel et tu constatera que la premiere est de loins la plus simple et celle qui necessite le moins d'operation et surtout celle qui au final manipulera le moins de donnée (ce qui se reperctuera en mémoire sur ton SGBD par une consomation de ram inferieure).



Cette discussion est classée dans : code, select, cours, img, from


Répondre à ce message

Sujets en rapport avec ce message

Select * from * [ par ziffox ] Bonjour à tous, Je cherche a faire une requête qui parcourt toute la base, et qui m'affiche le nom de la table et du champ qui contient une valeur. Requête utilisant un CONCAT dans le from [ par infkb ] Bonjour, je veux faire une requête sur la table test_21 tel que 21 et un id qu'on récupère d'une autre requête SQL puis je le concatène avec la chaîn Besoin d'aide pour un exercice [ par stabii ] Bonjour tout le monde. J'aurais besoin de votre aide SVP. J'ai un exercice a faire, et je voudrais que vous dites si j'ai bien commencé? Merci d'avanc Select Sum(Distinct) avec Access 2003 [ par js8bleu ] Bonjour, je suis sous access 2003 et j'ai une table recu(numrecu,daterecu,montanttotal,numvente,...) et une table vente (numvente,datevente,numclient Génération de graphiques [ par pillsmen ] Bonjour à tous,Mon problème concerne la génération d'un graphique dans un état sous ACCESS.On va commencer par le commencement ^^, je pense qu'un exem Problème avec DateDiff [ par Chatbour ] Salut à tous,j'ai la requête suivante :SELECT DateDiff("j", #02-06-2007#, #06-04-2004#)FROM matable;l'erreur : "Appel de procédure incorrect"j'ai test Utilisation de clause where stockée en DB [ par Badside ] Bonjour, J'aimerais récupérer la somme de plusieurs montants stockés dans une table et sélectionnés sur des critères repris dans une clause where sto jointure sql [ par amounaups ] bonjour, j'ai un probleme au niveau du code j'arrive pa a assimiler les choses [^^pirate] je ss entrain de réaliser une application gestion commercial problème sous requête [ par neoscars ] Bonjour Amis Developpeur, j'ai un petit problème sur une requête SELECT * FROM ( SELECT * FROM [TABLE1] WHERE [CHAMP1] NOT IN (SELECT [CHAMP1] FR Optimisation d'une sous-requête SQL [ par Lugdunum2 ] Bonjour, Dans le cadre de l'optimisation des requêtes SQL d'un site web, je me retrouve avec une grande question dont je n'ai pas trouvé de réponse d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales