Bonjour, encore moi je crois que je vais prendre un abonnement si ça continue
Non plus précisément, je n'arrive pas à trouver pourquoi la jointure de ma table n'est pas bonne du moins pourquoi elle ne retourne pas de résultat.
Voilà, j'ai :
-une table film (films_num, films_titre) => clef primaire films_num
-une table emprunteur (emp_num, emp_nom, emp_prenom) => clef primaire emp_num
-une table attribuer (att_emprunteur, att_titrefilm) => clef primaire att_emprunteur ET att_titrefilm
Dans ma form sous vb, je voudrais rechercher les emprunteurs qui ont empruntés un ou plusieurs films (savoir si le film est déjà emprunté par qqu'un ou pas en gros). Par exemple, si martin a emprunté le film angel-a quand je fais rechercher dans ma listbox(qui contient tous les films de la bdd) le film angel-a et cliques dessus, elle doit me ressortir le nom martin.
Pour cela, j'ai fais cette requête :
1 2 3
| sql = "SELECT FILMS_TITRE,EMP_NOM, EMP_PRENOM FROM FILMS, EMPRUNTEUR "
sql = sql & " WHERE EMP_NUM = (SELECT ATT_EMPRUNTEUR FROM ATTRIBUER)"
sql = sql & " AND FILMS_TITRE =(SELECT ATT_TITREFILM FROM ATTRIBUER)" |
Mais, y'a un hic. Lorsque je lance l'application, j'obtiens un message d'erreur disant ceci : Cette sous-requête peut retourner au plus un enregistrement
j'ai essayé de changer les = par in mais rien
J'ai donc modifié la requête en écrivant ceci :
SELECT FILMS_TITRE, EMP_NOM, EMP_PRENOM FROM FILMS, EMPRUNTEUR INNER JOIN ATTRIBUER ON EMP_NUM = ATT_EMPRUNTEUR AND FILMS_TITRE = ATT_TITREFILM
mais rien, le message dis que la jointure ne peut pas être supportées.
Ensuite, j'ai fais ceci
sql = "SELECT FILMS_TITRE, EMP_NOM FROM FILMS, EMPRUNTEUR union select ATT_EMPRUNTEUR, att_titrefilm from attribuer where att_emprunteur = emp_num and att_titrefilm = films_titre"
mais à nouveau message erreur: Il me dis 2 paramètres attendu. Ici, je comprends car quand un film est sélectionné dans la lstbox il doit me renvoyer le nom et le prénom de l'emprunteur.
J'ai cherché sur le site dans sql et lu les articles traitant sur les jointures mais là je sais plus laquelle utiliser. Je pensais que la première était la bonne car je l'avais utilisé sur un projet où figurait ce genre de jointure avec une table attribuer possédant également deux clefs primaires.
Merci de prendre le tps de me répondre et de m'aider à nouveau
Partager