Aide pour requête SQL. Récupérer une ligne selon plusieurs "jointures"

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour,

j'ai besoin d'aide pour finir une requête SQL "poussée" SVP.

Voici en gros mon problème :

J'ai 3 tables :

_La table 'questions' avec par exemple comme champs : 'id', 'nom'.

_La table 'reponses_possibles' avec par exemple comme champs : 'id', 'reponse'.

_La table 'reponses_choisies' avec par exemple comme champs : 'id', 'question_id' (pour faire éventuelles jointure avec table 'questions') 'reponse_possible_id' (pour faire éventuelles jointure avec table 'reponses_possibles').

_Dans ma table 'questions' j'ai 2 lignes insérées. Exemple :

'id' : 1, 'nom' : "Question 1".

'id' : 2, 'nom' : "Question 2".

_Dans ma table 'reponses_possibles' j'ai 4 lignes insérées. Exemple :

'id' : 1, 'reponse' : "Réponse 1".

'id' : 2, reponse : "Réponse 2".

'id' : 3, 'reponse' : "Réponse 3".

'id' : 4, 'reponse' : "Réponse 4".

_Dans ma table 'reponses_choisies' j'ai 4 lignes insérées. Exemple :

'id' : 1, 'question_id' : 1, 'reponse_possible_id' : 1.

'id' : 2, 'question_id' : 1, 'reponse_possible_id' : 2.

'id' : 3, 'question_id' : 1, 'reponse_possible_id' : 3.

'id' : 4, 'question_id' : 2, 'reponse_possible_id' : 3.

Ce que je souhaite faire en une seule requete SQL :

Récupérer la Question (table 'questions') qui est jointe aux Réponses choisies (table 'reponses_choisies') ayant reponse_possible_id 1, et reponse_possible_id 2, et reponse_possible_id 3.

Est-ce possible d'effectuer ce que je souhaite (récupérer la bonne ligne en une seule requete SQL qui retourne qu'une seule ligne) ?

Je pense avoir trouvée une astuce avec une requête SQL qui retourne plusieurs lignes en faisant un SELECT FROM table 'questions' avec un INNER JOIN on la table 'reponses_choisies', et avec quelques OR en condition (WHERE 'reponses_choisies.reponse_possible'_id = 1 OR 'reponses_choisies.reponse_possible_id' = 2 OR 'reponses_choisies.reponse_possible_id' = 3). Puis fait le "trie" en PHP avec un array associatif.

Mais si c'est techniquement possible d'y faire en une seule ligne, ça m’intéresse.

Merci beaucoup.

Édité par stephweb

Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte