Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it L'avatar di ric@66
    Registrato dal
    Oct 2011
    Messaggi
    65

    [MYSQL]SELECT con condizioni

    Un saluto a tutti ,sto' provando a fare una select di una tabella con determinate condizioni,se io ho i seguenti valori


    città colore
    roma 10
    firenze 15
    milano 13
    torino 18
    roma 18
    a me servirebbe che venissero visualizzati solo le citta che hanno
    valori < > di 10 e quella citta' che riporta il valore 10 annulerebbe la citta' con quel valore(10) per un risultato del genere:


    CITTA'
    firenze
    milano
    torino
    dimenticavo all'interno di una tabella posso avere piu' volte ripetuto il nome di una città,ma in stampa deve essere visualizzato solo una volta il nome,io ho provato a fare cosi ,ma naturalmente non va'


    select distinct CITTA from nazioni WHERE colore != '10' ;
    naturalmente cosi le vedo tutte le citta' anche se ho un valore 10


    select distinct CLS_CENTRALE from eventionline WHERE CLS_BACKCOLOR != '33023' AND CLS_BACKCOLOR = '33023' IS NULL ;
    in quest'altro modo non vedo piu' nessuna città perche basta un valore uguale a 10 per eliminare anche quelle che non lo hanno.
    Chi puo' darmi una mano ,sicuramente sara' semplice,ma non per me che sono un pivello in materia.

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,260
    SELECT DISTINCT citta from tabella1 WHERE città not in (SELECT citta FROM tabella1 WHERE colore = 10)

  3. #3
    Utente di HTML.it L'avatar di ric@66
    Registrato dal
    Oct 2011
    Messaggi
    65
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    SELECT DISTINCT citta from tabella1 WHERE città not in (SELECT citta FROM tabella1 WHERE colore = 10)
    woooww sei un grande grazie provato e naturalmente neanche sto' a dirti che funziona.
    grazie ancora

  4. #4
    Utente di HTML.it L'avatar di ric@66
    Registrato dal
    Oct 2011
    Messaggi
    65
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    SELECT DISTINCT citta from tabella1 WHERE città not in (SELECT citta FROM tabella1 WHERE colore = 10)
    woooww sei un grande grazie provato e naturalmente neanche sto' a dirti che funziona.
    grazie ancora

  5. #5
    Utente di HTML.it L'avatar di ric@66
    Registrato dal
    Oct 2011
    Messaggi
    65
    ahi ragazzi purtroppo non sapevo che alcune città possono avere due nomi diversi ,ad esempio roma puù essere chiamata "roma" oppure "roma1",questo diventa un problema perché avendo una tabella del genere :
    città colore
    roma 10
    firenze 15
    milano 13
    torino 18
    roma 18
    roma1 23
    avro' l'annullamento della citta roma ma continuerò a vedere roma1 (giustamente)


    firenze 15
    milano 13
    torino 18
    roma1 23
    nella stessa tabella ho una casella denominata "COD_CITTA" dove il valore è univoco per ogni sittà ,ad esempio roma e roma1 come COD_CITTA hanno valore 2.
    il problema e' che non saprei come inserirla nella soluzione di URANIO,
    "SELECT DISTINCT citta from tabella1 WHERE città not in (SELECT citta FROM tabella1 WHERE colore = 10)"
    e' fattibile inserirla oppure bisogna stravolgere la select?
    grazie per l'aiuto ragazzi

  6. #6
    puoi per cortesia postare la query effettiva? perche quella postata ricava solo il valore della città, non il valore a fianco

  7. #7
    Utente di HTML.it L'avatar di ric@66
    Registrato dal
    Oct 2011
    Messaggi
    65
    Quote Originariamente inviata da optime Visualizza il messaggio
    puoi per cortesia postare la query effettiva? perche quella postata ricava solo il valore della città, non il valore a fianco
    si perdonami e' vero solo la città che e' quello che a me interessa ,avevo fatto un copia e incolla dimenticandomi di togliere il numero colore

  8. #8
    dovrebbe essere sufficiente cambiare il campo della WHERE e di conseguenza quello della query interna

  9. #9
    Utente di HTML.it L'avatar di ric@66
    Registrato dal
    Oct 2011
    Messaggi
    65
    Quote Originariamente inviata da optime Visualizza il messaggio
    dovrebbe essere sufficiente cambiare il campo della WHERE e di conseguenza quello della query interna
    nella query interna dove il campo WHERE colore = 10
    dovrei sostituire con WHERE COD_CITTA =?
    SELECT DISTINCT citta, COD_CITTA from tabella1 WHERE COD_CITTA not in (SELECT citta FROM tabella1 WHERE COD_CITTA = ??
    mi sfugge sicuramente qualcosa

    Ultima modifica di ric@66; 21-06-2024 a 11:42

  10. #10
    questo perché ti sfugge come è stata costruita la query

    SELECT DISTINCT citta -- prende i valori univoci di città
    from tabella1 -- dalla tua tabella
    WHERE citta not in -- dove la città NON è tra quelle elencate dopo
    (SELECT citta -- come vedi è lo stesso campo della query esterna, e non può che essere così, altrimenti il confronto fallisce
    FROM tabella1 -- sempre dalla tua tabella
    WHERE colore = 10) -- condizione (per te) di esclusione

    quindi la query interna (quella tra parentesi) ricava le città da escludere, e le passa come parametro alla query esterna che poi le esclude

    tanto per dire, se la query esterna avesse avuto solo una "IN" invece di una "NOT IN" avrebbe mostrato SOLO quelle città con colore=10

    i suggerimenti vanno compresi, non solo copia-incollati

    a te capire anche perché ho messo un paio di pezzi in neretto...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.