Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Query annidate

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    24

    Query annidate

    E' possibile annidare una query all' interno di una altra nel WHERE ?

    mi spiego meglio...

    SELECT *
    FROM ----
    WHERE [la query annidata voglio metterla qui]


    Sarebbe il massimo se potessi annulare la query padre e far valere sono quella annidata.

    Non so se si può fare ma grazie mille per ogni aiuto.

  2. #2
    forse è possibile ma non so minimamente come fare, però magari ci si può girare attorno in qualche altro modo... il risultato che vuoi raggiungere qual'è?
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  3. #3

    Re: Query annidate

    Originariamente inviato da mchino84
    E' possibile annidare una query all' interno di una altra nel WHERE ?

    mi spiego meglio...

    SELECT *
    FROM ----
    WHERE [la query annidata voglio metterla qui]


    Sarebbe il massimo se potessi annulare la query padre e far valere sono quella annidata.

    Non so se si può fare ma grazie mille per ogni aiuto.
    certo che si possono fare query annidate, ricordati la prima che viene svolta è quella anel where poi quella che tu chiami "padre"...

    cmq
    che vuol dire che vuoi annullare la query padre?
    se non la vuoi dovresti non farla proprio!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    24
    grazie quale è la sintassi per annidare le query o devo posso andarmela a studiare...

    Lo so detto così non ha nessun senso... sto testando la sicurazza del modulo di ricerca del mio sito... quello che l'utente scrive in un campo va a finire nel Where e volevo provare a fare una query annidata da quel campo per vedere come reagiva il mio sito.

  5. #5
    Originariamente inviato da mchino84
    grazie quale è la sintassi per annidare le query o devo posso andarmela a studiare...

    Lo so detto così non ha nessun senso... sto testando la sicurazza del modulo di ricerca del mio sito... quello che l'utente scrive in un campo va a finire nel Where e volevo provare a fare una query annidata da quel campo per vedere come reagiva il mio sito.
    codice:
             SELECT..
    Q2)      FROM...
             WHERE condizione [IN | NOT IN | ANY |ALL ]
                   SELECT ...
        Q1)        FROM  ...
                   WHERE  ...
    dove Q1 viene eseguita prima di Q2 e gli operatori si dovrebbero capire cmq esempio:
    codice:
          SELECT nome
          FROM utenti
          WHERE matrciola NOT IN 
                SELECT id_utente
                FROM utenti_online
    questo esempio banale seleziona tutti i nomi della tabella utenti le cui matricole non sono nella tabella utenti_online ...cioè per trovare gli utenti ofline registrati ad un sito!

    il semplice database di riferimento è così strutturato:

    utenti (matricola,nome);
    utenti_online (id_matricola);

    N.B.
    quello che è sottolineato rappresenta la chiave della tabella!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    24
    Grazie infinite.

    Per annulare la query padre nessuna idea?

  7. #7
    non è detto che la query padre venga eseguita dopo la figlia se si usano valori che sono risultati della query padre viene eseguita dopo

    cmq mysql 3.x e 4.0 non supportano le subqueries quindi devi usare (se non erro) mysql 4.1 o altri database che le supportano, come postgresql
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Originariamente inviato da daniele_dll
    non è detto che la query padre venga eseguita dopo la figlia se si usano valori che sono risultati della query padre viene eseguita dopo

    cmq mysql 3.x e 4.0 non supportano le subqueries quindi devi usare (se non erro) mysql 4.1 o altri database che le supportano, come postgresql
    al corso di BASE DI DATI 1 e sul libro di testo è scritto così...prima esegue la seconda, poi la prima e poi fa l'operazione di confronto nel where!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  9. #9
    Originariamente inviato da Whitecrowsrain
    al corso di BASE DI DATI 1 e sul libro di testo è scritto così...prima esegue la seconda, poi la prima e poi fa l'operazione di confronto nel where!
    si ... ma per l'appunto se la seconda contiene campi estratti nella prima ... la prima deve per forza venire eseguita prima (scusa il gioco di parole) della seconda, altrimenti nella seconda come fa a fare la valutazione del dato che sta nella prima? :master:
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Originariamente inviato da daniele_dll
    si ... ma per l'appunto se la seconda contiene campi estratti nella prima ... la prima deve per forza venire eseguita prima (scusa il gioco di parole) della seconda, altrimenti nella seconda come fa a fare la valutazione del dato che sta nella prima? :master:
    se guardi bene gli operatori utilizzabili capisci che la seconda non dipende assolutamente dalla prima..è una query a se stante!
    ora ti spiego:

    1)viene valutata la seconda
    2)viene valutata la prima
    3)viene valutata la query per intero con i dati della prima e della seconda
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

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.