|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 147 ![]() |
Bonjour,
je débute en sql et j'ai un petit souci pour répondre à une requête alors si quelqu'un pourrait m'aider ca serait vraiment cool. Alors voila, j'ai les tables suivantes (je ne met pas les autres elle serait inutiles pour ma requete je pense) : Chercheur [ CodeCh, NomCh, CodeEq* ] Equipe [ CodeEq, NomEq, CodeResp*, CodeLabo* ] Je souhaiterai restituer les chercheurs travaillant dans la meme equipe que le chercheur eric. Voici ce que j'ai fais mais je ne comprends pas pourquoi ca ne me retourne pas ce que je voudrai. Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Vous pouvez utiliser deux fois la même table dans la requête :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 147 ![]() |
Merci mais n'y aurait-il pas plus simple étant donné que je suis débutante en la matière.
Une requête simple voire imbriquée m'irait |
|
|
00
|
|
|
#4 |
![]() ![]() |
Plus simple qu'une jointure ?
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 147 ![]() |
J'aimerai ne pas utiliser le INNER JOIN ..... ON
je ne connais pas du tout Comment faire plus simplement ? |
|
|
00
|
|
|
#6 | |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Bonsoir.
Citation:
Cordialement, Idriss |
|
|
00
|
|
|
#7 | ||
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Concernant ta méconnaissance des INNEr join regarde ici http://sqlpro.developpez.com/cours/sqlaz/jointures/ La requete pourrait s'écrire comme cela Code :
Donc en pratique, tu sépares tes tables par inner join à la place de, et ton critère de jointure C2.CodeEq = C1.CodeEq tu le mets derrière le ON. SQLPRO explique très bien les jointures, bonne lecture. Soazig |
||
|
|
10
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
avec une requete imbriquée, ca donne : Code sql :
en supposant que deux chercheurs ne peuvent avoir le meme nom, et que donc vous avez une contrainte d'unicité sur NomCh sinon, il faudra remplacer le = par un IN pour ne pas vous faire insulter par votre SGBDR au cas ou la sous requete renvoi plusieurs resultats |
||
|
|
00
|
|
|
#9 |
![]() ![]() |
La requête imbriquée est une moins bonne solution que la jointure car la jointure est l'opération la plus optimisée dans un SGBD.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#10 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
surtout qu'a mon avis dans le cas présent, il n'y aura aucune différence notable de performance... |
|
|
|
00
|
|
|
#11 |
![]() ![]() |
Et moi je crois qu'il vaut mieux faire le petit effort de comprendre la jointure normalisée depuis 1992, surtout que je la trouve au moins aussi simple, voire plus simple à comprendre que l'ancienne syntaxe.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#12 | |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Citation:
On fait des imbrications quand on a pas d'autres choix (pour comparer des COUNT par exemple). Cordialement, Idriss |
|
|
00
|
|
|
#13 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
cependant l'auto-jointure ne me semble pas la chose la plus simple pour apprendre... la jointure j'ai donc proposé ce code qui se rapproche de la requete originale de Lenou pour qu'il comprenne son erreur, car il y a une grosse erreur de logique dans sa requete. petit a petit l'oiseau fait son nid mais sinon je le redis, je suis tout a fait d'accord avec toi : ta requete est mieux écrite, plus optimisée... PS : Lenou, ta requete initiale avec une jointure s'ecrit : Code sql :
c'est donc effectivement pas très compliqué, plus lisible/comprehensible et optimisé... mais cela n'enlève pas l'erreur de logique dans le filtre et ne te donne donc pas ce que tu veux... |
|||
|
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 147 ![]() |
Merci beaucoup pour toutes vos explications, cela m'a bien aidéé.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com