Problème requête Mysql

Fermé
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 - Modifié par gaerebut le 6/06/2011 à 10:50
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 - 6 juin 2011 à 11:11
Bonjour,

je commence à désespérer avec une SQL que je n'arrive pas à construire.
Voici ce que je souhaite obtenir:

Selectionner une question au hazard mais seulement si celle-ci n'à pas déjà été répondu (via l'adresse ip).

Definition de ma BDD:
Table 'Question' (id, question, date)
Table 'Reponse' (id, id_question, reponse, ip, date)

Voici ma requête pour le moment: SELECT q.id, q.question FROM question q LEFT JOIN reponse r ON r.id_question = q.id AND r.ip != "mon_ip" ORDER BY RAND() LIMIT 1

Même lorsque j'ai une réponse en BDD qui pointe sur la question avec l'id 3 (et mon ip = "::1" en local), cette requête peut quand même me sortir quand même la question à l'id 3

Quelqu'un a une idée ?!

Merci à tous

A+
Gaerebut



Il y a 2 règles d'or pour réussir dans la vie :
-Règle 1: ne jamais dire tout ce que l'on sait...
-Règle 2: ...

2 réponses

Utilisateur anonyme
6 juin 2011 à 11:09
Bonjour,

essayez ça :

SELECT 
id, question 
FROM 
question 
WHERE
id in (SELECT id_question FROM reponse WHERE ip != "mon_ip")


car avec un left join vous aurez les infos de la table question même s'il n'y a rien dans reponse

Cordialement
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 324
6 juin 2011 à 11:11
0