Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [MySQL] Query nella query

    Ciao,

    mi vergogno un po' a fare questa domanda, perchè già so che sarà stata fatta mille volte e che è alla base del linguaggio SQL, ma vi prego non massacratemi.

    Domanda: come si fa una query nella query? Ovvero una queRy sui risultati di un'altra query? Ovviamente usando una sola SELECT!!

    Esempio:

    DB:
    ID - Nome - Data - Ordini
    1 - pippo - 08/02/2007 - 25
    2 - pluto - 07/02/2007 - 10
    3 - paperino - 06/02/2007 - 24
    4 - topolino - 07/02/2007 - 12
    5 - minnie - 08/02/2007 - 11
    ...

    Io lo so fare solo con 2 query...

    1) Estraggo i primi X record order by data (SELECT * FROM ... ORDER BY 'Data' DESC LIMIT X)
    2) Estraggo i primi Y record dal risultato della prima query (SELECT * FROM ... ORDER BY 'Ordini' DESC LIMIT Y)

    E' possibile "unire" le due cose per ottenere un unico recordset?

    Garzie!
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    non puoi estrarre direttamente i primi y risultati decrescenti?

    edit. scusa, non mi ero accorto che l'ordinamento avveniva su due campi diversi.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    che versione hai di mysql?

  4. #4
    4.x

    grazie per l'interessamento
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Kai Hansen
    4.x

    grazie per l'interessamento
    la x per cosa sta?

    0 o 1 fa tutta la differenza del mondo.

  6. #6
    dovrebbe essere 4.1
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Kai Hansen
    dovrebbe essere 4.1
    Se hai la 4.1 puoi usare le subquery. Prima di quella versione no.
    Per sapere che versione hai basta che esegua questa query

    select version()

    Nel caso possa davvero usare le subquery prova così

    codice:
    select * from (
    select * from tabella order by `data` desc limit x) as tab
    order by ordini desc limit y

  8. #8
    dalla query select version() = 4.1.22-standard-log

    va bene?
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Va benissimo. Prova allora la query che ti ho scritto sostituendo tabella col nome della tua e i numeri al posto di x e y.

  10. #10
    as tab
    che cosa è?


    così non va, errore SQL

    Codice PHP:
    SELECT FROM `Tabella` ( select from `Tabellaorder by `DATAINSdesc limit 25) AS TAB order by `Ordinidesc limit 10 
    "Quando si mangia il formaggio svizzero, che succede ai buchi?" (B. Brecht)

    Visitate il mio sito:
    www.clamorosalcibali.it

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.