[Python] Psycopg2 e serializzazione delle SELECT in JSON
Daniele Varrazzo
piro a develer.com
Gio 16 Ott 2014 17:01:08 CEST
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,alberto a example.org)","(2,alberto a lemonparty.org)"}
2 | daniele | {"(4,piro a officine)","(5,piro a 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
Maggiori informazioni sulla lista
Python