Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Doppioni estrazione da DB
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      talkoman User Attivo • ultima modifica di

      Doppioni estrazione da DB

      Ciao a tutti, ho due tabelle (Atleti, Graduatorie) nella tabella "Graduatorie" sono presenti tutti i tempi degli atleti. Questa tabella è collegata alla tabella "Atleti" tramite un codice identificativo di ogni atleta.
      Un atleta può essere presente più volte nella tabella dei tempi sempre nella stessa gara.
      Per esempio:

      • Pinco Pallo; 00'25.30; 100 Rana
      • Pinco Pallo; 00'22.35; 100 Rana

      Devo generare una graduatoria dove sono visibili i migliori tempi ed ovviamente non stampare due volte lo stesso atleta.
      Ho fatto questa query:
      [PHP]$sql="SELECT codFinAtleta,nomeAtleta,cognomeAtleta,YEAR(dataNascita) AS annoNascita, tempoRisultato, dataManifestazioneIn, sedeManifestazione, crono FROM manifestazionigrad INNER JOIN (ISC_atleti INNER JOIN graduatorie ON codFinAtl=codFinAtleta) ON manifestazionigrad.idManifestazione=graduatorie.codMan WHERE ISC_atleti.eliminato='n' AND graduatorie.eliminato='n' AND codGara='".$sub_gara."' AND sesso='".$_POST['sesso']."' AND manifestazionigrad.aa='".$ANNOAG."' AND graduatorie.baseVasca='".$_POST['cod_tipovasca']."'";
      if($nomeCat=="Seniores")
      $sql.=" AND YEAR(dataNascita)<='".$sub_anno."'";
      else{
      if($sub_anno!=($anni[1]."-".$anni[2]))
      $sql.=" AND YEAR(dataNascita)='".$sub_anno."'";
      elseif($sub_anno==($anni[1]."-".$anni[2]))
      $sql.=" AND (YEAR(dataNascita)='".$anni[1]."' OR YEAR(dataNascita)='".$anni[2]."')";
      }
      $sql.=" GROUP BY codFinAtleta ORDER BY tempoRisultato, cognomeAtleta, nomeAtleta[/PHP]

      Però così facendo mi estrae una sola volta Pinco Pallo ma con il tempo peggiore....
      Come posso sistemare la cosa?
      Grazie 😉

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Ciao talkoman,
        al posto di tempo tempoRisultato fai:

        min(tempoRisultato) AS tempoRisultato
        
        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          talkoman User Attivo • ultima modifica di

          Ma utilizzando il MIN mi estrae solo il miglior tempo in assoluto. Invece a me serve controllare se la stessa persona ha più tempi,inserire solo il migliore.
          Es.:
          nel DB ho:
          Pinco pallo 1'24'57
          pinco pallo 1'23'72
          tizio caio 1'25'48

          voglio stampato:
          Pinco pallo 1'23'72
          Tizio caio 1'25'48
          come faccio??
          [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            thedarkita ModSenior • ultima modifica di

            E' quello che dovrebbe fare con min, hai provato?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              talkoman User Attivo • ultima modifica di

              Ok, scusa non avevo provato. Funziona!

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                talkoman User Attivo • ultima modifica di

                Ciao Thedarkita...fino ad ora non ho avuto problemi con questa query...ma ora è diventata veramente lenta e il sistema non riesce più a reggerla e infatti va in timeout...come posso fare per velocizzare un po o sistemare il problema?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Inserisci degli indici nelle 2 tabelle se non lo hai già fatto.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    talkoman User Attivo • ultima modifica di

                    Mmm cioè?
                    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      thedarkita ModSenior • ultima modifica di

                      Ti consiglio una lettura di questa pagina:
                      dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        talkoman User Attivo • ultima modifica di

                        Ma ce le ho le chiavi univoche...

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        Caricamento altri post
                        Rispondi
                        • Topic risposta
                        Effettua l'accesso per rispondere
                        • Da Vecchi a Nuovi
                        • Da Nuovi a Vecchi
                        • Più Voti