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

    Una query complicata in Mysql: group by?

    Ciao ragazzi come da oggetto vi spiego un attimo la mia situazione:
    Ho diverse tabelle su cui effettuo una query con i vari left join per selezionare solo quello che mi interessa con una query e far fare tutto il lavoro sporco a Mysql.
    Supponiamo per semplicita di avere 2 tabelle:
    Utente: id, nome, ecc
    Immagini: id, nome, path, idutente
    Le immagini posseggono quindi un campo idUtente per fare in modo che ciascun utente possa avere più di una immagine per se.
    Il problema è questo:
    supponiamo che abbia una lista di utenti, e una lista di foto, con magari, 2, 3 foto per ciascun utente.
    Se ragiono con LEFT JOIN per fare l'unione di tutto in una query con un risultato, mi succede che se l'utente "pippo" ha 3 foto, nei risultati ottengo 3 record per pippo con solo i campi della foto diversi.
    Posso risolvere questo mettendo in fondo GROUP BY utente.id?
    Che ne dite? perchè ho provato e funziona ma volevo avere una vostra opinione.
    Grazie
    The Darkness™

    ________

    Annunci immobiliari

  2. #2
    codice:
    SELECT ads. * , agenzie.name AS agent, agenzie.logo_path AS agentLogo, cities.name AS city, category.name AS category, images.path AS imgPath, images.description AS iDesc 
    FROM imm_ads AS ads 
    LEFT JOIN imm_category AS category ON ads.categoryId = category.id 
    LEFT JOIN imm_agenzie AS agenzie ON ads.agentId = agenzie.id 
    LEFT JOIN imm_cities AS cities ON ads.cityId = cities.id 
    LEFT JOIN imm_images AS images ON ads.id = images.idAd 
    WHERE ads.published = 1 GROUP BY ads.id
    Praticamente faccio meglio forse ad incollarvi la mia query....questa dovrebbe selezionare tutti i campi di ads, inserendo nei risultati della query, agent come colonna name della tabella agenzie ecc ecc.
    Il problema si pone quando arriva ad imm_images, perchè praticamente ogni ads può avere più di una images.
    Se non metto il GROUP BY, e un annuncio con id 100 ha 3 foto ad esempio, succede che quando stampo i risultati, nei risultati stessi ottengo 3 righe completamente identiche, eccetto che per i campi di images.
    E' giusto sistemare questo "bug" con GROUP BY?
    The Darkness™

    ________

    Annunci immobiliari

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.