Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Encore une histoire de doublons ! ... mais plus compliqué ... :( [ Base de données / MySQL ] (Usaginou)

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é dans : code, distinct, cg, by, sf


Répondre à ce message

Sujets en rapport avec ce message

Un p'tit code simple mais je sais pas comment le faire ! [ par N e x u m ] Salut,je voudrais avoir un simple code SANS MYSQL (Si possible) Qui garde le même design dans chaque pageAdmettons on a un design (Un look, un interfa code simple pour formulaire [ par bernard ] bonsoir à tous, je suis débutant de chez débutant et j'ai besoin d'aide.je voudrais réaliser un programme en php.il s'agit d'un formulaire où le visit code source keylogger [ par cmasters ] Bonjour tt le mondeEst il possible de creer un keylogger en php ?Si oui serait il possible d'avoir un exemple complet d'1 code sourc? Pour que je puis récupération de code d'une page [ par booth ] bonjour,voilàa je voudrait pouvoir récupérer le code d'une page qui est affichée à l'écran Et là franchement j'ai pô d'idée pour le faire, je ne sais générer des miniatures avec gd 1.6 [ par vegetaline ] muhaha alors là c'est rigolo, un super défi pour les programmeurs fous!ok j'ai le code pour générer des miniatures grâce au php, mais ça marche qu'ave compteur de visites [ par choup ] voilà j'ai repéré sur ce site des compteurs de visite et je cherche celui qui serait le plus simple à mettre en place mais efficace quand même.S'il es pB avec Netscape [ par manueg ] Bonjour à tous, je ne comprends pas pourquoi ce code fonctionne sans pb sous IE alors qu'avec Netscape il ne trouve pas la page que je veux afficher e Peu commun select + transmission de variables [ par bladbud ] Bonjour,Voilà je vous mets de screen si jamais je n'explique mal ici ma premiere page :les boutons "+ " servent aux zones de liste et derrière chaque Syntaxe entre accolade [ par apz ] Salut,Souvent dans des sources php, on trouve la syntaxe suivante :{$rows['champ']} entre accolade {} quand on veut recupérer une valeur d'


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.