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

    Mostrare 1 record per categoria

    ho la tabella NEWS

    in questa tabella ho 4 records:

    id - categoria
    1 - seno
    2 - sedere
    3 - coscia
    4 - seno



    ho bisogno di selezionare i records in modo che non compaiano 2 record con la stessa categoria; ad es in questo modo:


    id - categoria
    1 - seno
    2 - sedere
    3 - coscia

    grazie in anticipo

  2. #2
    ho provato con group by:
    SELECT categoria FROM news group by categoria

    in effetti funziona ma il group by purtroppo limita i campi che possono essere visualizzati tramite il select, infatti possono essere visulizzati solo i campi che compaiono nel group o funzioni di aggregazione (count, sum...)

    se infatti aggiungo altri campi alla mia select (come dovrebbe essere):

    SELECT titolo,categoria FROM news group by categoria

    il server mi restituisce l'errore:
    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][Driver ODBC Microsoft Access] Impossibile eseguire una query che non include l'espressione "titolo" specificata come parte di una funzione di aggregazione.

  3. #3
    ho provato con

    SELECT DISTINCT (categoria) FROM news

    e mi funziona

    ma poi non posso vedere gli altri campi della tabella...allora vado con:

    SELECT DISTINCT (categoria), * FROM news


    ma mi mostra tutti i records del database!!

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se non stabilisci quale dei record duplicati debba essere visualizzato ...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    per me va bene qualsiasi....sto provando anche con IN (la select nella select ma ho lo stesso risultato delle 2 sopra)

    come faccio a stabilirlo? qual'è la sintassi giusta?

  6. #6
    fai una select in cui selezioni MIN(ID) (oppure MAX(ID) a tua scelta)
    per ogni categoria e la metti in join con la tabella stessa
    su Categoria=Categoria AND id=MIN(id)

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.