Marre des doublons :(

Marre des doublons :( - SQL/NoSQL - Programmation

Marsh Posté le 22-03-2004 à 17:41:27    

Salut!
 
J'ai fais une requete pourtant simple  mais qui me renvoi 324 enregistrements alors qu'il n'y en a que 18 :(  
 
voilà ma requete :
SELECT village.* FROM village,membres WHERE membres.actif='1'
 
Bref, je selectionne tout les villages ou le compte membres lié au village est actif, donc membres.village='1'
 
324 résultat au lieu de 18 ! :(
J'ai remarqué que 18² = 324, si ca peux aider...
 
Avec la clause distinct ca marche trés bien mais je pense qu'il ya mieux a faire, je ne sais pas encore quoi.
 
Merci d'avance.

Reply

Marsh Posté le 22-03-2004 à 17:41:27   

Reply

Marsh Posté le 22-03-2004 à 17:42:33    

SELECT village.* FROM village,membres WHERE membres.actif='1' GROUP BY NumVillage Par exemple

Reply

Marsh Posté le 22-03-2004 à 17:43:34    

oui, c'est le produit qui sort ... t'es sure qu'il te manque pas une petite close de jointure dans ton WHERE ?

Reply

Marsh Posté le 22-03-2004 à 17:53:02    

Merci
Le group by marche trés bien
Faudrait vraiment que je me mette au SQL plus sérieusement...je suis sur que la moitier de mes requetes sont écrites n'importe comment :(

Reply

Marsh Posté le 22-03-2004 à 17:54:50    

Heu le group by c'est pas vraiment une bonne idée pour ça.
Dans membre chacun a par ex un "village_id", et dans village il y a des id, tu dois avoir un WHERE memnres.village_id = village.id


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-03-2004 à 18:34:05    

je vote comme antp : fais une jointure explicite


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 22-03-2004 à 22:39:43    

antp a écrit :

Heu le group by c'est pas vraiment une bonne idée pour ça.
Dans membre chacun a par ex un "village_id", et dans village il y a des id, tu dois avoir un WHERE memnres.village_id = village.id


 
Dans ce cas, probleme.
Ici, un membre => x villages.

Reply

Marsh Posté le 22-03-2004 à 22:45:35    

Benh c'est l'inverse alors, pour chaque village y a l'id du membre à qui il appartient.
Par contre s'il n'y a rien pour faire le lien ta base est complètement foireuse.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-03-2004 à 12:14:36    

antp a écrit :

Benh c'est l'inverse alors, pour chaque village y a l'id du membre à qui il appartient.
Par contre s'il n'y a rien pour faire le lien ta base est complètement foireuse.


 
mouarf oui je suis bete
SELECT village.* FROM membres, village WHERE village.membres_id=membres.id
 
Merci les gens :d

Reply

Sujets relatifs:

Leave a Replay

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