Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [MySQL] Aiuto su query con GROUP BY e HAVING

    Ciao a tutti,
    ho due tabelle (CATEGORIE, ARTICOLI) che voglio mettere in join allo scopo di trovare, per ogni CATEGORIA, l'ARTICOLO con DATA_PUBBLICAZIONE più recente.

    Ho provato una query di questo tipo:
    codice:
    SELECT *
    FROM articoli
    JOIN categorie ON articoli.categorie_id = categorie.id
    GROUP BY categorie.id
    HAVING max( articoli.data_pubblicazione )
    Purtroppo non funziona, non ritorna alcun record.. dove sbaglio?

    Ciao e grazie!

  2. #2

  3. #3
    Ciao, grazie per avermi linkato la soluzione.

    Ma mi chiedo.. è un BUG del DBMS oppure sono io che non ho capito a cosa serve HAVING?

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Opterei per la seconda ipotesi

    HAVING è una WHERE applicata dopo la GROUP BY

  5. #5
    Anche io opterei per la seconda..

    Però appunto per quello che è una sorta di where..

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da superpelo
    Però appunto per quello che è una sorta di where..

  7. #7
    No.. effettivamente pensandoci bene ha senso, è un filtro applicato dopo l'operazione di GROUP BY..

    E' logica una costruzione di questo tipo:
    SELECT articoli . *
    FROM articoli
    JOIN categorie ON articoli.categorie_id = categorie.id
    WHERE data_pubblicazione = (
    SELECT max( data_pubblicazione )
    FROM articoli AS sub_a
    WHERE sub_a.categorie_id = articoli.categorie_id
    )
    GROUP BY categorie_id

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.