Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Concatenare campo

  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Concatenare campo

    Salve,
    questa query:

    codice:
    SELECT c.*, l.letti_tipo FROM camere AS c
    
    LEFT JOIN letti l ON (c.id_camera = l.id_camera)
    
    WHERE c.hotel_id = '1' ORDER BY numero_ospiti ASC
    Mi seleziona tutte le camere con hotel_id 1 e i letti appartenenti a quella camera (che sono in un'altra tabella), solo che il risultato mi duplica le camere (visto che i letti per ogni camera sono più di uno)

    cosi:

    camera tripla | letto singolo
    camera tripla | letto matrimoniale
    camera singola | letto singolo
    camera sincola | letto singolo

    avrei voluto un risultato cosi:

    camera tripla | letto singolo, letto matrimoniale
    camera singola | letto singolo, letto singolo (o letto singolo x2)

    Ho provato con CONCAT ma mi concatena tutto in un'unica camera

    codice:
    SELECT c.*, GROUP_CONCAT(l.letti_tipo SEPARATOR ', ') AS letti FROM camere AS c
    
    LEFT JOIN letti l ON (c.id_camera = l.id_camera)
    
    WHERE c.hotel_id = '1' ORDER BY numero_ospiti ASC

  2. #2
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    non si fa in modo semplice, vuoi una matrice trasposta, che non si può fare in generale.
    si può fare in modo "sporco" con un CASE se le colonne sono in numero massimo prefissato

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Risolto:

    codice:
    SELECT c.*, GROUP_CONCAT(l.letti_tipo SEPARATOR ', ') AS letti_tip,
    
    FROM camere AS c
    
    LEFT JOIN letti l ON (c.id_camera = l.camera_id)
    
    WHERE c.hotel_id = '1' GROUP BY numero_ospiti ASC

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.