[SQL] Classement sur 2 champs de tables distinctes

5 réponses
AuteurMessage

Fred |
Modérateur

Photo de Fred

Inscrit le : 09/05/2005

# Le 23/01/2006 à 16:41

Salut

Je me prends la tête depuis un petit moment sur une requête, alors s'il y a des experts ici, voici le topo :

3 tables :

- oeuvres : id, nom
- avis : id, o_id
- discussions : id, o_id

Donc à chaque oeuvre peuvent correspondre un ou plusieurs avis (ou même aucun) et idem pour les discussions

But du jeu : trouver les oeuvres ayant suscité le plus de réactions (donc le plus d'avis et de discussions)

J'ai tenté ça :


SELECT O.id, O.nom, COUNT(D.id)+COUNT(A.id) ) AS n
FROM oeuvres O
LEFT JOIN discussions D ON D.o_id = O.id
LEFT JOIN avis A ON A.o_id = O.id
GROUP BY O.id ORDER BY n DESC LIMIT 5


J'ai mis des LEFT JOIN parce que, sans ça, ça ne prenait pas les oeuvres qui n'avaient soit que des avis soit que des discussions. Le problème maintenant c'est que pour ces enregistrements-là ça va, mais pour ceux qui ont des correspondances dans les deux tables ça me renvoie de mauvaises valeurs.

Là j'essaye de façon empirique de combiner les LEFT, RIGHT, INNER et consorts mais rien ne vient...

Bon bien sûr en général c'est juste après avoir posté qu'on trouve tout seul la solution, mais que cela ne vous empêche pas de m'aider si vous avez une idée

"Le bois ne rend pas les coups"

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 23/01/2006 à 16:54

COUNT( distinct( D.id ) ) + COUNT( distinct( A.id ) ) ?

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Fred | Frédéric
Modérateur

Photo de Fred

Inscrit le : 09/05/2005

# Le 23/01/2006 à 16:58

Putain d'enfoiré MILLE MERCIS ! Non, dix mille mercis. Bon, je te fais un chèque de mercis en blanc et tu mettras la somme que tu veux...

Putain d'enfoiré !

"Le bois ne rend pas les coups"

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 23/01/2006 à 17:08

de rien

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

LePhasme | Guillaume
Membre

Photo de LePhasme

Inscrit le : 09/05/2005

# Le 23/01/2006 à 17:18

Tu sais qu'il en a dans le ciboulo le petit bool !!!!
Il maitrise euh l'gars !

Guillaume

Paris Apartments RentalsOuvrir dans une nouvelle fenetre Avertisseur Autonome de FumeeOuvrir dans une nouvelle fenetre ViadeoOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 23/01/2006 à 18:59

moarf j'ai eu un très bon prof de SQL (pas à l'IUT hein, faut pas déconner )

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 2:03:27 | Généré en 3.04ms | Contacts | Mentions légales |