2 query sulla stessa tabella + group by

  • Creatore Discussione Creatore Discussione Cloude
  • Data di inizio Data di inizio

Cloude

Nuovo Utente
5 Apr 2013
7
0
0
Ciao a tutti,
sono alle prese con una query che non riesco a realizzare.
Dunque ho questa una tabella

Codice:
id -   room        data                nome               id_ordine
 1     singola   01/01/2014            giovanni                1
 2     singola   10/01/2014            giovanni                1

vorrei ottenere questo sulla stessa riga

Codice:
room               data                      nome           id_ordine
singola    01/01/2014 - 10/01/2014         giovanni            1

la mia query è questa:

$query = "SELECT id, room, data, nome, id_ordine FROM rooms GROUP BY id_ordine ORDER BY the_date DESC";


grazie!
 
Ultima modifica:
Credo sia molto ma molto meglio modificare la tabella permettendo l'inserimento di due date quindi crei due campi DATA_INIZIO e DATA_FINE.
Semplifica le query, semplifica la lettura della tabella, ci saranno la metà dei record e usata ridotto il tempo di esecuzione delle query.
 
Credo sia molto ma molto meglio modificare la tabella permettendo l'inserimento di due date quindi crei due campi DATA_INIZIO e DATA_FINE.
Semplifica le query, semplifica la lettura della tabella, ci saranno la metà dei record e usata ridotto il tempo di esecuzione delle query.

Ciao Longo grazie per la tua risposta.

Sto agendo in questo modo perché sto cercando di affiancare il mio form ad uno script che ho trovato online (ajax availability)
che verifica le disponibilità e purtroppo mi inserisce le date in un solo campo della tabella.

Visto che comunque sono pochi dati da inserire come potrei ottenere quel risultato da me postato?
 
Vedi se questa ti può aiutare.

Grazie per il suggerimento,
ho dato un'occhiata alla query il problema sembra simile,
però nell'esempio postato si tratta di più tabelle relazionate,
invece la mia query è sulla stessa tabella.
Leggendo un pò in rete ho letto che potrei risolvere con UNION SELECT,
ma non riesco.
 
Ciao, prova cosi
Codice:
SELECT id, room, min(data) as dal, max(data) as al, nome, id_ordine 
FROM rooms 
GROUP BY id_ordine
non ho testato potrebbe non funzionare
ps
sempre che data sia di tipo DATE
in alternativa se hai le date in formato VARCHAR potresti convertirle con STR_TO_DATE
Codice:
SELECT 
id, room, nome, id_ordine ,
min(STR_TO_DATE( data, '%d/%m/%y')) as dal, 
max(STR_TO_DATE( data, '%d/%m/%y')) as al 
FROM rooms 
GROUP BY id_ordine
 
Ultima modifica:

Discussioni simili