|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Mathias LéonardDéveloppeur Web Inscription : janvier 2009 Messages : 25 ![]() |
Bonsoir tout le monde.
Je suis confronté à un petit problème de requête SQL. Autant le dire tout de suite, je ne suis pas un expert, ce pourquoi je viens ici. Pour mon schéma de DB, le voici, ce sera plus simple avec une image : http://img713.imageshack.us/i/32938191.png/ Un film possède donc un certain nombre d'acteurs (via une table de jointure), et un film peut être vu par des utilisateurs (via la table VIEWS). Pour récupérer tous les films d'un certain acteur, et vus par un certain utilisateur, je fais ceci : Code :
Cependant, j'aimerais effectuer la même requête, mais pour les films non-vus. Et c'est là que je bloque. À mon avis, je suis aveugle, mais je ne vois pas vraiment comment je peux faire ça... Si quelqu'un avait une idée pour moi, ce serait pas mal^^ Merci d'avance. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
bonjour,
Je pense que tu devrais utiliser la commande where not exists un truc du genre : Code :
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Mathias LéonardDéveloppeur Web Inscription : janvier 2009 Messages : 25 ![]() |
Le temps d'avoir une réponse, j'avais découvert la piste du NOT EXISTS, mais sans pour autant comprendre comment m'en servir
Après avoir testé ta méthode, je peux dire que cela fonctionne à merveille. Un grand merci donc pour la rapidité. |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Mathias LéonardDéveloppeur Web Inscription : janvier 2009 Messages : 25 ![]() |
Désolé, je suis allé un peu trop vite en besogne...
La requête donnée par carden752 fonctionne bien... mis à part qu'elle me récupére tous les films non vus de l'utilisateur, sans tenir compte de l'id de l'acteur fourni! |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
En écrivant toutes vos jointures avec des INNER JOIN, vous auriez vu tout de suite le filtre en trop dans la sous requete
D'autre part, la jointure sur la table actors me semble inutile, puisque vous filtrez sur l'ID qui est dans la table movies_actors Est-ce que vous voulez les films avec un acteur précis non vus par un user précis ? Alors quelque chose comme : Code SQL :
|
||
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Mathias LéonardDéveloppeur Web Inscription : janvier 2009 Messages : 25 ![]() |
En effet, cela semble plus propre de cette manière.
Cela fonctionne parfaitement (après plusieurs vérifications). C'est dingue comment cela semble facile pour vous Merci en tout cas. |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : avril 2008 Messages : 554 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com