Requete mysql complexe

Requete mysql complexe - SQL/NoSQL - Programmation

Marsh Posté le 31-03-2006 à 23:17:36    

Bonsoir à tous,
j'ai besoin de faire une requete mysql assez complexe, je ne sais pas si je peux la faire en une fois, je m'explique.

 

j'ai trois tables une table membres et une table vote et une table question.
la derniere table contient le contenu des sondages, cependant je met plusieurs sondages en même temps, lorsqu'un membre vote, j'ajoute un ligne dans ma table vote (table vidé toutes les 24 heures).

 

Seulement, j'aimerai afficher sur ma page d'accueil par exemple un sondage au hasard pour lequel le membre n'aurait pas encore voté.

 

en gros un select de ma table question pour laquelle il n'y a aucune ligne qui correspond (contenant l'id du blog et l'id du membre) dans la table vote (selection aleatoire, m'enfin order by rand())...
 
quel fonction mysql dois je utiliser svp?
merci d'avance

Reply

Marsh Posté le 31-03-2006 à 23:17:36   

Reply

Marsh Posté le 01-04-2006 à 00:48:37    

Peut-être avec quelque chose du genre

SELECT sondage_nom, count(*)
FROM vote
GROUP BY sondage_nom
HAVING count(*) < 1

Reply

Marsh Posté le 01-04-2006 à 09:05:05    

select * from question q
left join vote v on v._id_question = q.id_question
where v.id_membre = '<mon id>'
and v.id_question is null
order by rand()
limit 1;

Reply

Marsh Posté le 01-04-2006 à 09:53:59    

salut, merci beaucoup de prendre la peine de m'aider.:)
 
select * from question q  
left join vote v on v._id_question = q.id_question  
where v.id_membre = '<mon id>'  
and v.id_question is null  
order by rand()  
limit 1;
 
 
j'ai un probleme avec cette requete en effet: where v.id_membre = '<mon id>'  
avec ça, mysql m'affiche rien, en effet je n'ai aucune ligne dans ma table de vote comportant un id user et aucune question.. c'est
soit les deux , soit aucun (je selectionne a ce moment là)
 
merci d'avance
 
 
>> j'ai mis un right join et sa marche niquel, merci


Message édité par coconutes4 le 01-04-2006 à 10:03:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed