Problème requête Mysql
gaerebut
Messages postés
1017
Date d'inscription
Statut
Membre
Dernière intervention
-
Profil bloqué -
Profil bloqué -
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
Configuration: Mac OS X 10.6.7 / Google Chrome 11.0.696.77
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
Configuration: Mac OS X 10.6.7 / Google Chrome 11.0.696.77
A voir également:
- Problème requête Mysql
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
2 réponses
Pourquoi tu ne fais pas tout simplement
select question.id, reponse.id_question
from question inner join reponse on question.id=reponse.id_question
where question.id=toniddequestion
Et tu testes si c'est vide
Varaldi Q.
Laisse moi 2 minutes que j'te trouve un autre truc...
select question.id, reponse.id_question
from question inner join reponse on question.id=reponse.id_question
where question.id=toniddequestion
Et tu testes si c'est vide
Varaldi Q.
Laisse moi 2 minutes que j'te trouve un autre truc...
Merci pour ta réponse mais cela ne réponds pas exactement à ce que je cherche !
En effet, il peut ne pas y avoir de réponse sur la question donc je pense qu'utiliser un LEFT JOIN est utile.
De plus, la question tirée au hazard ne doit pas avoir été déjà répondu.
Donc ici on va devoir tirer une question au hazard masi avant voir si une réponse existe ET si cette réponse à une IP différente de la notre!
Le tout en une seule requête..
Je suis sûr que c'est possible U_U'
Merci quand même de ta réponse :-)
Gaerebut
En effet, il peut ne pas y avoir de réponse sur la question donc je pense qu'utiliser un LEFT JOIN est utile.
De plus, la question tirée au hazard ne doit pas avoir été déjà répondu.
Donc ici on va devoir tirer une question au hazard masi avant voir si une réponse existe ET si cette réponse à une IP différente de la notre!
Le tout en une seule requête..
Je suis sûr que c'est possible U_U'
Merci quand même de ta réponse :-)
Gaerebut