Visualizzazione dei risultati da 1 a 3 su 3

Discussione: distinct sql

  1. #1

    distinct sql

    Ho due tabelle (t1 e t2) composte dai seguenti campi

    *t1*
    id
    nome
    tel

    *t2*
    id
    mail

    Le due tabelle devo venire collegate tramite id con una relazione 1 a n (un contatto può avere piu mail)

    Qualcuno può dirmi come si scrive la query in sql per fare il join di t1 e t2 mostrando sullo schermo solo 1 record per contatto, nel senso che di un contatto voglio solo mostrare la prima mail e le rimanenti no?

    Io avevo scritto la seguente query
    codice:
    SELECT DISTINC t1.*, t2.mail
    FROM t1
    LEFT JOIN t2
    on t1.id=t2.id
    logicamente lui applica il distint su tutti i campi e trovando diverse la mail mi butta fuori tutto((
    Come si puo fare per applicare il distinct solo ai campi di t1 e non a t2.mail?

    tnk

    Coito ergo sum
    Vivere è la cosa più rara al mondo: i più esistono solamente

  2. #2
    devi usare le funzioni di aggregazione e la clausola group by

    select t1.nome, t1.mail, first(t2.mail)
    from t1 LEFT JOIN t2
    on t1.id=t2.id
    group by t1.nome, t1.mail

    non mi ricorso se la funzione first sia sql standard o meno, al più puoi usare la min o la max (che ti prende la minima o la massima secondo un ordinamento lessicografico)


  3. #3
    Ho dovuto adattarlo un attimo ma funziona perfettamente

    Grazie mille

    Coito ergo sum
    Vivere è la cosa più rara al mondo: i più esistono solamente

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.