Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    usare except per filtrare i risultati - alternativa

    salve,
    ho una tab composta da campo1 e campo2

    devo estrarre i valori non duplicati di campo1 che non sono presenti in campo2



    volevo fare una cosa del tipo

    select distinct campo1 from tab
    except
    select distinct campo2 from tab

    penso però che la versione di mysql non supporti except ne tantomeno NOT IN

    Ci sono altre strade senza dover necessariamente gestire la cosa mediante php?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    mi autorispondo per i posteri

    basta usare NOT IN

    quindi la cosa diverrebbe

    SELECT DISTINCT campo1 from tab1
    WHERE campo1 NOT IN
    (SELECT DISTINCT campo2 from tab2)

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Il not in può essere dispendioso su grosse tabelle.

    codice:
    select t1.campo from tab1 as t1
    left join tab2 as t2
    on t1.campo = t2.campo
    where t2.campo is null
    group by t1.campo

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ciao nicola grazie della risposta.

    in realtà la tabella è unica. nel mio secondo post ho erroneamente indicato una tab2 che non esiste

    la tua query può funzionare lo stesso su un unica tabella??
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Certo. Metti la tabella in join con se stessa.

    codice:
    select t1.campo1 from tabella as t1
    left join tabella as t2 
    on t1.campo1 = t2.campo2
    where t2.campo2 is null
    group by t1.campo1

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ok

    grazie

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.