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

    [MySql] group by oppure no

    Buon pomeriggio, ho questi dati nella tabella

    ID | Nome | ID_Scaffali | user_id
    _______________________________

    1 | Lacci | 22 | 0
    _______________________________

    2 | Lacci | 245 | 354
    _______________________________

    3 | Suola | 2 | 0


    Non la faccio lunga, ho oltre mille record.
    La query è simile a questa nella parte finale, in più ho delle JOIN, ma a me interessa ottenere come risultato sia i record che hanno Nome=Lacci con ID_Scaffali=245 e user_id=354 ed anche Nome=Suola, ID_Scaffali=2 e user_id=0

    1) Facendo in questo modo: Select * from tb_x where ecc ecc group by tb_x.Nome, mi prende sempre il primo record quello che voglio scartare

    2) in quest'altro modo: Select * from tb_x where ecc ecc group by tb_x.Nome HAVING ID_Scaffali=245 mi prende soltanto questo e non mi serve

    Devo prendere tutti i record meno quello che ha ID_Scaffali = 22 e user_id=0
    Grazie.

  2. #2
    non basta fare
    codice:
    ...where (id_scaffali<>22 OR user_id=0)...
    ?

    vedi tu se OR o AND

  3. #3
    grazie della risposta.
    Come dici te, non basta fare OR o AND, se ho capito bene.
    Per� non mi sta funzionando ne con OR ne con AND. C'� qualcosa che mi sfugge, dall'alto della mia ignoranza.
    Poi se posso chiederti, perch� il group by prende il primo quello che voglio scartare, agisce per default in questo modo?
    Grazie ancora.
    Ultima modifica di ANTAGONIA; 05-03-2025 a 21:23

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,459
    Quote Originariamente inviata da ANTAGONIA Visualizza il messaggio
    Come dici te, non basta fare OR o AND, se ho capito bene.
    Se è vero quello che hai scritto come criterio, ossia "Devo prendere tutti i record meno quello che ha ID_Scaffali = 22 e user_id=0", allora la query suggerita è corretta, posto che sia stata scritta bene: riportala senza alterazioni in una risposta e vediamola.

    Quote Originariamente inviata da ANTAGONIA Visualizza il messaggio
    Poi se posso chiederti, perch� il group by prende il primo quello che voglio scartare, agisce per default in questo modo?
    Questo dipende dall'indice usato per l'ordinamento, ma volendo salire un gradino sopra, perché si dovrebbe usare un GROUP BY?
    Se il criterio che devi seguire è quello indicato qui sopra, non hai alcun raggruppamento da fare (a che servirebbe mai?)
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    @ANTAGONIA, per capire quello che succede servirebbe lo scenario completo. Con una simil-query piena di ecc. ecc. come puoi ben intuire si può fare poco...

  6. #6
    prova a ricreare lo scenario in uno dei tanti fiddle che ci sono su internet, tipo qui https://www.db-fiddle.com/

  7. #7
    seguendo lo spunto di alka, perché una GROUP BY? Hai bisogno di risultati tipo MIN() MAX() SUM()... ?

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.