rat-du-net Posté 7 Février 2006 Posté 7 Février 2006 (modifié) Salut !!! j'aissaye de faire une requete imbriqué. J'ai une table dans laquel j'ai des commentaires. Je souhaite recuperer l'id_expediteur de la personne ayant envoyé le plus de commentaire mais ne contenant aucun 1 et aucun "vote" et que l'id_exptediteur se trouve moin de 2 fois dans la table des bannis j'ai essayé ca mais ca ne fonctionne pas SELECT message, id_expediteur, count(id_expediteur) as nb_com FROM `commentaire` WHERE message NOT like '%1%' AND message NOT like '%vote%' AND date_envois >= 1138748400AND date_envois <= 1141081200 AND id_expediteur = (SELECT id_banni as id_expediteur, count(id_banni) as nb FROM `banni` WHERE 1 GROUP BY id_banni) AND nb < 2 GROUP BY id_expediteur ORDER BY nb_com DESC LIMIT 10 Modifié 7 Février 2006 par rat-du-net
xpatval Posté 7 Février 2006 Posté 7 Février 2006 Heu, et en clair, quelle est l'erreur affichée ? Tu as d'autres précisions à nous donner ? xpatval
rat-du-net Posté 7 Février 2006 Auteur Posté 7 Février 2006 l'erreur est : #1241 - Operand should contain 1 column(s) en fait, c'est des que je rajoute le count(id_banni) as nb il veut pas qu'il y ai plus d'une colonne dans la deuxieme requete
Portekoi Posté 7 Février 2006 Posté 7 Février 2006 Ta requête n'a aucun sens pour lui car un champ ne peux pas être égale à 2 valeurs
rat-du-net Posté 7 Février 2006 Auteur Posté 7 Février 2006 en fait, c'est ici alors qu'il faut que je selectionne seulement les membre qui sont moin de deux fois dans la table : SELECT id_banni as id_expediteur, count(id_banni) as nb FROM `banni` WHERE 1 GROUP BY id_banni seulement un SELECT id_banni as id_expediteur, count(id_banni) as nb FROM `banni` WHERE nb < 2 GROUP BY id_banni ne marche pas
Portekoi Posté 7 Février 2006 Posté 7 Février 2006 Essaie avec ceci : SELECT id_banni FROM `banni` GROUP BY id_banni HAVING count(id_banni) < 2
rat-du-net Posté 7 Février 2006 Auteur Posté 7 Février 2006 a ben voila !! SELECT message, id_expediteur, count(id_expediteur) as nb_com FROM `commentaire` WHERE message NOT like '%1%' AND message NOT like '%vote%' AND date_envois >= 1138748400AND date_envois <= 1141081200 AND id_expediteur IN (SELECT id_banni FROM `banni` GROUP BY id_banni HAVING count(id_banni) < 2) GROUP BY id_expediteur ORDER BY nb_com DESC LIMIT 10 ca a l'air d'etre bien mieux !!! je ne connaissais pas le HAVING count(id_banni) < 2 ca va bien e simplifier la vie !!! a chaque fois je passais par une requete intermediaire !!! merci beaucoup !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant