[PHP/MySQL] Récupérer que les élements double ? (résolu)

Répondre
Partager Rechercher
Bonsoir JoL,


J'aimerais récuperer des données de ma base, mais seulement les données ou il y a un champ qui contient au moins 2 fois la même chose...

Exemple :
id - objet
1 - livre
2 - dvd
3 - bd
4 - dvd


Il me faudrait, récupéré via une requete :
2 - dvd
4 - dvd


Seulement, je dois récupéré ça sans savoir ce qu'il y a dans le champs objet. Donc sans savoir que c'est dvd (sinon c'est assez simple comme requete :/)

Merci d'avance pour votre aide :-]
Bon , je dis ce que je pense en théorie , après à toi de concrétiser ça en MySQL :

Tu fais une requête listant toute ta base du genre :
Citation :
SELECT id,objet from BD
En suite tu fais une requête pour n'avoir qu'une fois chaque entrée ( DISTINCT ) , je crois que ca donne un truc du genre :
Citation :
SELECT id , DISTINCT objet from BD
Ensuite tu soustrait tes 2 requêtes , je sais pas comment faire ça mais ca doit être faisable. Tu auras ainsi une fois ( seulement ) chaque entrée double , enfin du moins en théorie.

Voila
EN fait, j'ai réussi en joignant la table avec elle même...

Donc qqch du style :
SELECT u1.id, COUNT(u1.id) AS nbr
FROM table AS u1
LEFT JOIN table AS u2 ON u1.objet=u2.objet
GROUP BY u1.id
ORDER BY nbr DESC , u1.objet DESC
en sql pur ca peut donner qqch comme ca.
par contre je sais pas du tout si ca s'adapte à mysql. (qui ne gere les vues que depuis la version 5 je crois).

create view nbobj (nom,nb)
as select objet, count(*)
from BD
group by objet;


Select id,objet
from bd
where objet IN (select nom
from nbobj
where nb>1);
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés