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

a marqué ce sujet comme résolu.

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.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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