|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 2 ![]() |
Bonjour,
Etant débutant en SQL je viens m'en remettre à vous pour cette requête. Présentation de la situation : J'ai 3 tables : Film(idFilm, titre, annee, nomRealisateur, prenomRealisateur, duree) Acteur(idActeur, nomActeur, prenomActeur, nationalite) Jouer(idFilm, idActeur) Je souhaite récupérer le titre des films dans lesquels ont joué à la fois 'nom de l'acteur 1' et 'nom de l'acteur 2'. Mon code : Code :
Si quelqu'un peu me donner un petit coup de pouce pour me réorienter dans la bonne direction je lui en serai reconnaisant Merci à vous! PS : j'utilise postgre. |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Bonjour,
Ta requete ne risque pas de renvoyer quoi que ce soit, car le nom de l'acteur ne peut être égal à deux valeurs distinct... Il faut faire une double jointure sur la table acteur: Code SQL :
Tatayo. |
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Ou bien compter le nombre de lignes retournées et ne garder que les acteurs dont le nombre de lignes est égal au nombre de films souhaités :
Code :
Et remarque au passage la syntaxe normalisée depuis 1992 pour les jointures !
__________________
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 ! |
||
|
00
|
|
|
#4 |
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Par contre, cette version ne fonctionne pas dans le cas de deux films ayant le même titre (par exemple un remake), et un acteur en commun.
Celà etant dit, je ne pense pas que le cas se présente souvent Tatayo. |
|
|
00
|
|
|
#5 |
![]() ![]() |
C'est pour ça qu'il vaudrait mieux regrouper par identifiant et récupérer les caractéristiques des films dans une sur-requête.
__________________
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 ! |
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 2 ![]() |
Quelle rapidité, en effet j'étais à côté de la plaque.
Mais vos réponses m'ont pas mal aidé et j'ai pu résoudre quelques requêtes qui me sont demandées bcp plus facilement. Pour ce qui est du INNER JOIN je ferais bien d'en informer mon prof qui n'a pas l'air d'être au courant... Encore merci et bonnes fêtes à tous |
|
|
00
|
|
|
#7 | |
![]() ![]() |
Citation:
Mais j'ose espérer que ton prof connaît la syntaxe normalisée sinon qu'il change de métier !
__________________
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 ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com