Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208

    [MySql] Group By non più funzionante

    Salve, ho una query che fino a prima dell'aggiornamento a MySql 5.7 funzionava bene e ora non più.
    La query è la seguente:
    codice:
    SELECT s.si_img_nome FROM
    (
    SELECT si_img_nome  FROM si_img
    WHERE si_img_id IN(1,3,5)
    ORDER BY si_img_cop DESC
    ) AS s
    GROUP BY s.si_img_casa
    In sostanza assegno al campo si_img_cop il valore 1 per indicare l'immagine di copertina di una serie di immagini e con le 2 query riuscivo a selezionare il primo elemento ordinato di ogni gruppo righe.
    Adesso non funziona più.
    Chi sa aiutarmi?

  2. #2
    che vuol dire "non funziona più"?

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Appunto, cosa significa che non funziona piu ?

    Quella query è strana, io mi sto chiedendo se possa mai avere funzionato ......

    .

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Allora ragazzi, la query l'ho riportata sul forum in maniera semplificata perché è molto più complessa, effettivamente c'è un errore ma non posso più modificarla credo.
    La query se viene eseguita funziona solo che il risultato è cambiato dopo l'aggiornamento di MySql.
    Forse mi sono spiegato male, in sostanza la subquery fa ORDER BY per portare in cima delle righe e poi con l'altra query faccio il GROUP. Mentre prima il GROUP dava la prima riga ordinata in precedenza, ora non lo fa più.

  5. #5
    ma ti restituisce qualche errore?

  6. #6
    altra cosa: posta la query vera, quasi sempre postare una query semplificata nasconde il problema

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Allora la query non da errore, guarda questa.
    codice:
    SELECT * FROM
    (
    SELECT sistemazioni_img_nome, sistemazioni_img_rel_sistemazioni FROM sistemazioni_img
    WHERE sistemazioni_img_rel_sistemazioni IN (91,97)
    ORDER BY sistemazioni_img_cop DESC
    ) AS i
    GROUP BY i.sistemazioni_img_rel_sistemazioni
    Se tu volessi ottenere in una SELECT un GROUP e un ORDER contemporaneamente con l'ORDER corretto come faresti?
    Ultima modifica di Mixio; 14-04-2020 a 09:21

  8. #8
    la prima cosa che chiedo è: a cosa serve la GROUP BY se non c'è neanche un campo aggregato (SUM, MIN, MAX, COUNT ecc)?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    per rimuovere i duplicati, il risultato che voglio a quel punto deve essere la prime righe ordinate precedentemente.

  10. #10
    per rimuovere i duplicati c'è la DISTINCT

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.