Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    SELECT DISTINCT con 2 colonne

    ciao a tutti, ho un problema ha fare una select distinct basata sul valore di 2 colonne di tipo varchar una contiene il mese (m) e l'altra l'anno (y)
    il contenuto della tabella è tipo questo

    id | m | y
    ________
    1 | 1 | 12
    2 | 2 | 12
    3 | 2 | 12
    4 | 1 | 13

    vorrei quindi che estraesse e mi mostrasse solo il campo "m" e "y" nell'esempio sopra solo delle prima 2 righe e della 4 ovvero che mostrasse una sola volta ogni mese accoppiato al suo anno.
    ho provato questo codice ma non va, la parte di connessione al db funziona dato che se metto un semplice select funziona

    Codice PHP:
    $sql "SELECT DISTINCT m, y FROM pt_publication ORDER BY id desc limit 24";  
    $query mysql_query($sql)or die("Non riesco ad eseguire la query: Problemi: ".mysql_error());  
                    
                    while (
    $results mysql_fetch_array($query)) {  
                    
    $m $results['m'];
                    
    $y $results['y'];

                    echo 
    $m " " $y "
    "
    ;
                    } 
    ho provato anche a sostituire
    Codice PHP:
    $sql "SELECT DISTINCT m, y FROM pt_publication ORDER BY id desc limit 24"
    con
    Codice PHP:
    $sql "SELECT DISTINCT (m, y) FROM pt_publication ORDER BY id desc limit 24"
    o con
    Codice PHP:
    $sql "SELECT DISTINCT CONCAT(m, y) FROM pt_publication ORDER BY id desc limit 
    24"

    ma non funziona, ho guardato anche qui http://www.w3schools.com/sql/sql_distinct.asp che mi dice di fare
    Codice PHP:
    SELECT DISTINCT column_name,column_name 
    ed è quello che ho fatto, ma l'esempio su quel sito è con una sola colonna.

    grazie a tutti in anticipo

  2. #2

    Re: SELECT DISTINCT con 2 colonne

    Originariamente inviato da myweb77myweb77
    vorrei quindi che estraesse e mi mostrasse solo il campo "m" e "y" nell'esempio sopra solo delle prima 2 righe e della 4 ovvero che mostrasse una sola volta ogni mese accoppiato al suo anno.
    Scusa, ma se un mese ha più anni cosa vorresti vedere?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    se come mesi ho febbraio 2012 e febbraio 2013 vorrei vedere 02 2012 e 02 2013, ho appena risolto.
    nel primo codice che ho postato
    ho modificato
    Codice PHP:
    $sql "SELECT DISTINCT m, y FROM pt_publication ORDER BY id desc limit 24"
    in
    Codice PHP:
    $sql "SELECT DISTINCT m,y FROM pt_publication ORDER BY id desc limit 24"
    togliendo lo spazio tra la virgola e la y e ora funziona correttamente.
    grazie

  4. #4
    Originariamente inviato da myweb77myweb77
    togliendo lo spazio tra la virgola e la y e ora funziona correttamente.
    grazie
    Permettimi di rimanere perplesso!
    L'avevo già provata la query e funzionava anche prima! Cosa dovrebbe cambiare lo spazio in più o in meno?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    hai ragione grazie. ora ho un altro piccolo problema.
    dal select vorrei eliminare il mese/anno attuale, ovvero luglio 2013.
    dopo aver usate date per avere mese e anno corrente ho fatto così
    Codice PHP:
    $sql "SELECT DISTINCT m,y FROM pt_publication WHERE m != $mese_attuale AND y != $anno_attuale"
    il problema però è che non mi elimina solo luglio 2013 ma mi elimina dalla select tutte le righe che hanno il 2013 come anno e luglio come mese, le 2 condizioni del where dovrei farle sussistere contemporanemante, deve togliere dall'elenco solo 07 2013 e non anche 07 2012,07 2011... 01 2013, 02 2013...

  6. #6
    grazie

  7. #7
    Devi mettere in OR e non in AND.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.