begin process at 2012 02 12 03:30:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Encore une histoire de doublons ! ... mais plus compliqué ... :(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Encore une histoire de doublons ! ... mais plus compliqué ... :(

mercredi 23 juillet 2008 à 17:20:25 | Encore une histoire de doublons ! ... mais plus compliqué ... :(

Usaginou

Me voila encore avec un histoire de doublons ^^

Grace a Yann_lo_san, j'ai fais la découverte de DISTINCT (quel bel outil :p) Depuis j'ai découvert GROUP BY au effet quasi similaire ^^

enfin voila .... je vous réprésente vite fait ma table :p

ID       titre                      clan       num_ep     date
1      Code Quantum       [CG]         1           1216575000   
2      Sliders                    [SF]          1           1216575001
3      Code Quantum       [CG]         2           1216575002
4      The Simpsons         [CG]         1           1216575003
5      Heroes                   [SF]          1           1216575004
...

Date sont des timestamp dans un champ BIGINT pour infos, la j'ai mis nimp c'est pour vous montrer
Sur mon site, les gens peuvent ajouter les épisodes si ils ont les infos nécessaire pour remplir la BDD (les autres champs que je n'ai pas marqué)
Sur la page index, je veux faire un cadre permettant d'afficher le dernier ajout de chaque Clan, j'ai donc tenté en vain différente requete... je vous en donne quelques unes que j'ai essayé :

==> SELECT * FROM episodes GROUP BY team WHERE date='max(date)'
==> SELECT DISTINCT (clan), titre, num_ep, mes_autres_champs FROM episodes ORDER BY date DESC
...
enfin voila j'ai tenté un peu tout ce que j'ai trouvé sur le net, et je découvre que la plupart des gens raconte n'importe quoi, comme la deuxième commande ou le distinct n'est sensé prendre en compte que le clan parce que il y a les parenthèse...
Donc si je n'avait que ces 5 résultats la dans ma table je veux voir apparaitre (bien présenté dans un tableau bien évidement) :
4      The Simpsons         [CG]         1           1216575003
5      Heroes                   [SF]          1           1216575004
Mais moi j'ai ca :
1      Code Quantum       [CG]         1           1216575000   
2      Sliders                    [SF]          1           1216575001
ou ca , ca dépend cde la forme de la machine XD :
2      Sliders                    [SF]          1           1216575001
1      Code Quantum       [CG]         1           1216575000   

En fait, comme je l'ai lu sur beaucoup d'autre forum, que ce soit avec DISTINCT ou GROUP BY, le ORDER BY est toujours pris apres. J'ai vu des trucs avec des AS qui me semblait correct mais le plus souvent il balance le code comme solution sans expliquer les effets, ce que je deteste -_-'

Peut-etre que ce n'set aps la solution je ne sai pas vraiment, certain petit malin dise que c'est pas possible... Pour moi tout est possible, si il le faut je fais ca en 25 requetes mais ca marchera ^^ C'est juste que si quelqu'un a la solution en une ou max deux requetes ca serait pas mal en m'expliquant un minimum ce que je ne connait aps encore :)

Merci d'avance a toute réponse ;)

Si il vous faut plus d'explications, je suis a vous toute la journéeet meme toute la nuit ^^ GEEK POWA XD
jeudi 24 juillet 2008 à 01:46:38 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

Usaginou

Réponse acceptée !
oula y'a rien personne ? je demande un truc trop dur ?
Meme vous truc les plus pérave me suffiront, du moment que ca marche :)

Si je trouve cette nuit, je vous passerez la solution ^^
jeudi 24 juillet 2008 à 10:03:17 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

p3x

Réponse acceptée !
c'est quoi le souci exactement je comprends pas ? qu'est ce que tu veux faire exactement ?

Parce que si tu veux trouver les doublons de ta table tu fais ca :
SELECT id FROM table GROUP BY id HAVING count(id) > 1;

p3x
jeudi 24 juillet 2008 à 10:25:32 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

JoJo738

Membre Club
Réponse acceptée !
Hello ^^

Et avec une requete imbriquée de ce genre ? Tu fais une requete sur un résultat déjà ordonné :

SELECT DISTINCT (clan), titre, num_ep, mes_autres_champs FROM (SELECT clan, titre, num_ep, mes_autres_champs FROM episodes ORDER BY DESC) alias_requete1 ORDER BY date ASC )
  • On prend tous les enregistrements de la table en appliquant un ORDER BY DESC
  • Puis, on fait une recherche, sur la précédente requete.


Si ma reponse te convient, merci de l'accepter ! 
jeudi 24 juillet 2008 à 19:09:45 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

Usaginou

Réponse acceptée !
Bon... J'ai testé ta solution Jojo, de différentes manières mais impossible de la faire marcher... Enla lisant j'ai compris qu'il fallait apparament faire une requete imbriquée. Ce que j'ai chercher sur le net et j'ai trouver réponse à ma solution je vous la met quand même, je suis sur que ca interessera un paquet de gens :

"SELECT e.* FROM episodes e INNER JOIN (SELECT max(date) date, clan FROM episodes GROUP BY clan ) le ON e.date = le.date AND e.team = le.clan"

Je ne peux qu'avouer que je ne comrpend pas vraiment tout, mais ca marche alors je vais me renseigner sur INNER JOIN le plus tot possible :p

Petit "bug" remarqué, si deux entrées on exactement le meme date, c'est à dire le même timestamp, alors il affichera tout les champs de ce timestamp, il faudrait ajouter que l'ID doit etre différent je supose ^^ mais moi ca ne me gêne pas donc :p
jeudi 24 juillet 2008 à 19:16:27 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

JoJo738

Membre Club
Réponse acceptée !
Lu,

Pour choisir un seul enregistrement par date ET par clan, ajoute ceci :


SELECT DISTINCT (CONCAT(e.clan, e.date)), e.* FROM episodes e INNER JOIN (SELECT max(date) date, clan FROM episodes GROUP BY clan ) le ON e.date = le.date AND e.team = le.clan

Normalement, ça doit marcher. En fait, là on fait une recherche en enlevant les doublons ou le clan et la date sont différents (on obtient un champ clan.date)

Si ma reponse te convient, merci de l'accepter ! 
jeudi 24 juillet 2008 à 19:16:28 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

JoJo738

Membre Club
Réponse acceptée !
Lu,

Pour choisir un seul enregistrement par date ET par clan, ajoute ceci :


SELECT DISTINCT (CONCAT(e.clan, e.date)), e.* FROM episodes e INNER JOIN (SELECT max(date) date, clan FROM episodes GROUP BY clan ) le ON e.date = le.date AND e.team = le.clan

Normalement, ça doit marcher. En fait, là on fait une recherche en enlevant les doublons ou le clan et la date sont différents (on obtient un champ clan.date)

Si ma reponse te convient, merci de l'accepter ! 
vendredi 25 juillet 2008 à 00:06:36 | Re : Encore une histoire de doublons ! ... mais plus compliqué ... :(

Usaginou

Réponse acceptée !
oh ! c'est gentil ca ^^ je prend :p voila je peut clore le topic ^^ J'espère que ca pourra servira  qq un d'autre ;)


Cette discussion est classée dans : code, distinct, cg, by, sf


Répondre à ce message

Sujets en rapport avec ce message

Problème importation de données [ par franck6983 ] Bonjour j'essaie de faire une mise à jour de ma Bdd à partir d'un fichier csv avec la commande LOAD DATA LOCAL INFILE mais cela ne fonctionne pas. Ave affichage php avec count group by [ par a_france ] boujour à tous, j'ai un soucis sur l'affichage de mon boucle, je m'explique: voici d'abord mon code: [code=php]$sqlheure="SELECT e.Immatricule, COUNT Class not found [ par lilyy59 ] Bonjour J'ai fait une page avec toute mes requetes dans une class salarie, et dans une autre page j'appelle ma classe mais j'ai un [code=autre]Fatal problème de quotes dans mon code pho [ par msi079 ] slt. aider mes a corriger les erreurs de mon code . voici le message d'erreur affiché : Parse error: parse error, expecting `','' or `';'' in C:\wamp\ code pour recherche intuitive [ par tif27940 ] Bonjour, j'ai un champ de recherche pour un nom ou un prénom et j'aimerai que lorsque un utilisateur commence a écrire un nom ou prénom des suggesti Problème création d'une Iframe pour ne pas recharger la page... [ par blackshadows ] Bonsoir, J'ai besoin d'aide j'ai un script d'upload d'images([url=http://www.fidjiforum.info]visible ici[/url]) créer avec le concour de "CODE57"que j Problème de sécurité [ par mailliam ] Bonjour à tous, Je n'ai jamais prit le temps de protéger mes pages correctement, car je n'avais rien de sensible à protéger.. Je m'y suis donc mis, e inserrer des fichier dans ma base de donne ou des fichiers en php (base mysql) [ par msi079 ] slt. je dois insérer des images dans ma base de données . alors j'ai pris un code sur le net que je crois intéressant. comme je suis débutant en php j Menu et Corps aligné [ par witaales ] Bonjour, Comment faire pour que le menu soit a gauche et le corps du texte soit juste à coté ? Voici mon code : [code=php] DEBRAISE CORPORATION - probleme avec mon script php update [ par jbtv ] Bonjour a tous ! voici mon probleme ###################################### [code=php] le lien es


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,650 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales