On 2014-10-16 15:55, Alberto Granzotto wrote:
Chiedo venia, avrei potuto risparmiarti una mail, non avevo capito il
funzionamento del GROUP BY nella query, ci sono arrivato dopo che GROUP
BY
1, 2 è equivalente a GROUP BY u.id, u.name :)
Grazie per tutte le indicazioni, ora che mi hai mostrato che a) si può
fare
b) come si fa ho tutte le informazioni necessarie per divertirmi!
Buon divertimento, fammi sapere: mi incuriosisce sempre quando qualcuno
usa psycopg in maniera un po' piu' spinta.
N.B. nella query che abbiamo discusso, se un utente non ha nessuna
email, viene restituita una cosa un po' bruttina: una lista con un'email
con tutti i campi a null, almeno giudicando il risultato:
test=> insert into users (name) values ('foo');
INSERT 0 1
test=> select u.id, u.name, array_agg((e.id, e.email)::t_email) from
users u left join emails e on u.id = e.user_id group by 1,2;
id | name | array_agg
----+---------+----------------------------------------------------------
1 | alberto |
{"(1,albe...@example.org)","(2,albe...@lemonparty.org)"}
2 | daniele | {"(4,piro@officine)","(5,piro@develer)"}
3 | foo | {"(,)"}
Sei in grado di modificare la query in maniera da restituire un array
vuoto se un utente non ha nessuna email (che psycopg convertirebbe in
una lista vuota)?
-- Daniele
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python